<?php 
   Include_once('../db_login.php');   
   Include_once('../conn.php');
   
   $respage = mysql_query("SELECT COUNT(*) FROM news;"); 
    while($row = mysql_fetch_row($respage))
    {
    $num = $row[0];     //$num 是数据库中总纪录数
    }
    $recordnum =5;
    $pages = ceil($num/$recordnum); // $recordnum 是每页显示多少条记录, $pages 是一共有多少页
    if (@$_GET["page"]) // 获取 url 中的参数 page
    {
    //$current 是当前页 ,$pre 是前一页的, $next 是后一页, $pre 和 $next 为后面前一页和后一页的连接参数 page 的值
    // 如果 url 中的参数为 1 ,把当前页置为 1 前一页, $pre 也为一, $next 为 2
    if($_GET["page"]==1)
    {
    $current = 1;
    $pre = 1;
    $next = 2;
    }else{
    // 如果 url 中的参数不为一(不是第一页),就把当前页取值为 url 中获得的参数, $pre 为当前页减 1 , $next 为加 1
    $current = $_GET["page"];
    $pre = $current-1;
    $next = $current+1;
    }
    }else {
    // 如果 url 中没有参数 page ,当前页置为 1 , $pre=1,$next=2
    $current = 1;
    $pre = ‘1‘;
    $next = 2;
    }
    $now = ($current-1)*$recordnum;
    $echopage = "<table width=450 cellpadding=0 cellspacing=0><tr>";
    $echopage .= "<td><font>".$pages." 页 </font></td>";
    $echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=1> 第一页 </a><font></td><td><font><a href=".$_SERVER["HP_SELF"]."?page=".$pages."> 最后一页 </a></font></td>";
    $echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=$pre> 前一页 </a>   <a href=".$_SERVER["PHP_SELF"]."?page=$next> 后一页 </a></font></td>";
    $echopage .= "<td><font> 到第 <select name=‘topage‘ size=‘1‘ onchange=‘window.location='".$_SERVER["PHP_SELF"]."?page="+this.value‘> ";
      for($i=1;$i<=$pages;$i++){
    if($i==$current)
    $echopage .= "<option value=‘$i‘ selected>$i</option> ";
    else
    $echopage .= "<option value=‘$i‘>$i</option> ";
    }
    $echopage .= "</select> 页 </font></td>";
    $echopage .= "</tr></table>";
    
    echo "<td align=‘center‘>".$echopage."</td>";  
    $sql="SELECT * FROM `news` order by id desc LIMIT $now,$recordnum"; 
    $res=mysql_query($sql); 
    $rows=fetch_assoc($res);
    while($rows)
    {
   
    echo "<tr><td align=‘left‘ valign=‘middle‘><a href=‘index.php?id=".$rows['news_id']."‘ target=_blank><font>".$rows['title']."[".$rows['date']."]</font></a></td></tr>";
    } 
?>

解决方案 »

  1.   


    <?php  
      Include_once('../db_login.php');   
      Include_once('../conn.php');
        
      $respage = mysql_query("SELECT COUNT(*) FROM news;");  
      while($row = mysql_fetch_row($respage))
      {
      $num = $row[0]; //$num 是数据库中总纪录数
      }
      $recordnum =5;
      $pages = ceil($num/$recordnum); // $recordnum 是每页显示多少条记录, $pages 是一共有多少页
      if (@$_GET["page"]) // 获取 url 中的参数 page
      {
      //$current 是当前页 ,$pre 是前一页的, $next 是后一页, $pre 和 $next 为后面前一页和后一页的连接参数 page 的值
      // 如果 url 中的参数为 1 ,把当前页置为 1 前一页, $pre 也为一, $next 为 2
      if($_GET["page"]==1)
      {
      $current = 1;
      $pre = 1;
      $next = 2;
      }else{
      // 如果 url 中的参数不为一(不是第一页),就把当前页取值为 url 中获得的参数, $pre 为当前页减 1 , $next 为加 1
      $current = $_GET["page"];
      $pre = $current-1;
      $next = $current+1;
      }
      }else {
      // 如果 url 中没有参数 page ,当前页置为 1 , $pre=1,$next=2
      $current = 1;
      $pre = ‘1‘;//这儿加个单引号干嘛呢?
      $next = 2;
      }
      $now = ($current-1)*$recordnum;
      $echopage = "<table width=450 cellpadding=0 cellspacing=0><tr>";
      $echopage .= "<td><font>".$pages." 页 </font></td>";
      $echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=1> 第一页 </a><font></td><td><font><a href=".$_SERVER["HP_SELF"]."?page=".$pages."> 最后一页 </a></font></td>";
      $echopage .= "<td><font><a href=".$_SERVER["HP_SELF"]."?page=$pre> 前一页 </a> <a href=".$_SERVER["PHP_SELF"]."?page=$next> 后一页 </a></font></td>";
      $echopage .= "<td><font> 到第 <select name=‘topage‘ size=‘1‘ onchange=‘window.location='".$_SERVER["PHP_SELF"]."?page="+this.value‘> ";
      for($i=1;$i<=$pages;$i++){
      if($i==$current)
      $echopage .= "<option value=‘$i‘ selected>$i</option> ";
      else
      $echopage .= "<option value=‘$i‘>$i</option> ";
      }
      $echopage .= "</select> 页 </font></td>";
      $echopage .= "</tr></table>";
        
      echo "<td align=‘center‘>".$echopage."</td>";   
      $sql="SELECT * FROM `news` order by id desc LIMIT $now,$recordnum";  
      $res=mysql_query($sql);  
      $rows=fetch_assoc($res);
      while($rows)
      {
        
      echo "<tr><td align=‘left‘ valign=‘middle‘><a href=‘index.php?id=".$rows['news_id']."‘ target=_blank><font>".$rows['title']."[".$rows['date']."]</font></a></td></tr>";
      }  
    ?>感觉没啥问题啊!思路也没啥问题!就是少了个最后一页的判断
      

  2.   

    $echopage .= "<td><font> 到第 <select name=‘topage‘ size=‘1‘ onchange=‘window.location='".$_SERVER["PHP_SELF"]."?page="+this.value‘> ";
    看下这行,“”不对
      

  3.   

    最后的一个”前面是‘,试试$echopage .= "<td><font> 到第 <select name=‘topage‘ size=‘1‘ onchange=‘window.location='".$_SERVER["PHP_SELF"]."?page="+this.value "> ";
      

  4.   

    建议使用smarty模板分页,数据访问做成一个通用类,这样就可以只改一个表名做到分页的目的