我找到问题出在什么地方了.
if(empty($page))
{
 $page=0;
}
问题出在这里.但是要怎么改呀.

解决方案 »

  1.   

    我测试你的代码,就是
    echo "<a href='fengyi.php?page=",$page,"'>上一页</a>&nbsp";
    $page应该改成$page-1;
    另外如果不加限制$page会变的没有范围,最好在显示之前加
    if($page<1)
    $page=1;
    if($page>$maxpage)
    $page=$maxpage
      

  2.   

    给你介绍一个分页的类吧。我不要分数。
    <?
    //---------------------------------------------------------------
    // buildNav 1.0
    // 建立分页显示
    //
    // 作者: sephiroth([email protected])
    // 网站: http://www.sephiroth.it/download/detail.php?id=64
    // --------------------------------------------------------------
    // 本类的用法
    /*
        include('buildNav.php');
        $conn = mysql_connect('localhost','xxxxxx','xxxxxx'); // 建立数据库连接, 如果已经连接, 请省略
        mysql_select_db('dbname'); // 选择数据库, 如果已经选择, 请省略
        $db = new buildNav; // 创建对象
        $db->offset = 'offset';
        $db->number_type = 'number'; // (or 'alpha', or 'number')
        $db->limit = 10;
        $db->execute("SELECT * from table_name ORDER by id ASC");
        while($myrow = mysql_fetch_array($db->sql_result))
        {
            print $myrow["your_column"];
        }    // 建立分页显示的模式连接等等...
        $pages = $db->show_num_pages('&laquo;','&laquo; prev','&raquo;','next &raquo;','|','class="stylename"');    // 显示分页
        echo $pages;    // 显示数据信息
        $info = $db->show_info();
        echo $info;
    */
    // --------------------------------------------------------------    class buildNav // [类: 控制所有分页函数的类]
        {
            var $limit, $execute, $query;        function execute($query) // [结构函数 : mySQL执行语句]
            {
                $GLOBALS[$this->offset] = (!isset($GLOBALS[$this->offset])) ? 0 : $GLOBALS[$this->offset];
                $this->sql_result = mysql_query($query);
                $this->total_result = mysql_num_rows($this->sql_result);
                if(isset($this->limit))
                {
                    $query .= " LIMIT " . $GLOBALS[$this->offset] . ", $this->limit";
                    $this->sql_result = mysql_query($query);
                    $this->num_pages = ceil($this->total_result/$this->limit);
                }
                if ($GLOBALS[$this->offset]+1 > $this->total_result) {
                    $GLOBALS[$this->offset] = $this->total_result-1;
                }
            }        function show_num_pages($frew = '', $rew = '', $ffwd = '', $fwd = '', $separator = '|', $objClass = '') // [函数 : 建立分页连接]
            {
                $current_pg = $GLOBALS[$this->offset]/$this->limit+1;
                if ($current_pg > '5') {
                    $fgp = ($current_pg-5 > 0) ? $current_pg-5 : 1;
                    $egp = $current_pg+4;
                    if ($egp > $this->num_pages) {
                        $egp = $this->num_pages;
                        $fgp = ($this->num_pages-9 > 0) ? $this->num_pages-9 : 1;
                    }
                }
                else {
                    $fgp = 1;
                    $egp = ($this->num_pages >= 10) ? 10 : $this->num_pages;
                }            if($this->num_pages > 1) {
                    // searching for http_get_vars
                    foreach ($GLOBALS[HTTP_GET_VARS] as $_get_name => $_get_value) {
                        if ($_get_name != $this->offset) {
                            $this->_get_vars .= "&$_get_name=$_get_value";
                        }
                    }
                    $this->listNext = $GLOBALS[$this->offset] + $this->limit;
                    $this->listPrev = $GLOBALS[$this->offset] - $this->limit;
                    $this->theClass = $objClass;
                    if (!empty($rew)) {
                        $return .= ($GLOBALS[$this->offset] > 0) ? "[<a href=\"$GLOBALS[PHP_SELF]?$this->offset=0$this->_get_vars\" $this->theClass>$frew</a>] <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->listPrev$this->_get_vars\" $this->theClass>$rew</a> $separator " : "[$frew] $rew $separator ";
                    }                // 显示分页导航
                    if ($this->show_pages_number || !isset($this->show_pages_number)) {
                        for($this->a = $fgp; $this->a <= $egp; $this->a++) {
                            $this->theNext = ($this->a-1)*$this->limit;
                            if ($this->theNext != $GLOBALS[$this->offset]) {
                                $return .= " <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->theNext$this->_get_vars\" $this->theClass> ";
                                if ($this->number_type == 'alpha') {
                                    $return .= chr(64 + ($this->a));
                                }
                                else {
                                    $return .= $this->a;
                                }
                                $return .= "</a> ";
                            }
                            else {
                                if ($this->number_type == 'alpha') {
    //如果在当前页, 则用绿色粗体显示
                                    $return .="<font style='font-weight:bold;color=green'>". chr(64 + ($this->a))."</font>";
                                }
                                else {
                                    $return .="<font style='font-weight:bold;color=green'>". $this->a."</font>";
                                }
                                $return .= ($this->a < $this->num_pages) ? " $separator " : "";
                            }
                        }
                        $this->theNext = $GLOBALS[$this->offset] + $this->limit;
                        if (!empty($fwd)) {
                            $offset_end = ($this->num_pages-1)*$this->limit;
                            $return .= ($GLOBALS[$this->offset] + $this->limit < $this->total_result) ? "$separator <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->listNext$this->_get_vars\" $this->theClass>$fwd</a> [<a href=\"$GLOBALS[PHP_SELF]?$this->offset=$offset_end$this->_get_vars\" $this->theClass>$ffwd</a>]" : "$separator $fwd [$ffwd]";
                        }
                    }
                }
                return $return;
            }        function show_info() // [函数: 显示数据记录信息]
            {
                $return .= '总共有 <b>'. $this->total_result . '</b> 条记录';
                $list_from = ($GLOBALS[$this->offset]+1 > $this->total_result) ? $this->total_result : $GLOBALS[$this->offset]+1;
                $list_to = ($GLOBALS[$this->offset]+$this->limit >= $this->total_result) ? $this->total_result : $GLOBALS[$this->offset]+$this->limit;
                $return .= '显示 ' . $list_from . ' 到 ' . $list_to . ' 条的记录';
                return $return;
            }
        }
    ?>
    -----------------------------------------------------------
    很好用的
      

  3.   

    改成
    if(empty($page))
    {
     $page=1;
    }
      

  4.   

    to 云飞凡
      但是现在是所有的翻页的连接都没有用.
      原因就在于判断$page是否赋值那里.没一次判断都是没有赋值,所以总是只显示一页.
      

  5.   

    有记录呀,以共有7条.
    在调试的时候,总记录数,总页数,显示都是正确的.
    $maxpage是2,$max是7
      

  6.   

    把所有$page=0的地方全换成$page=1;
    $startrecord=$limit*$page;不对,应该是
    $startrecord=$limit*($page-1);
    echo "<a href='fengyi.php?page=",$page,"'>上一页</a>&nbsp";
      

  7.   

    都换了还是没有用.我估计还是$page的问题.翻页之后$page没有被赋值,所以在if(empty($page))那里的时候又给page赋值为1了.
    我觉得我开始那么写也可以.
    如果那样写的话,分页就是从0开始.
    像你给的代码那样写就是从1开始.
      

  8.   

    我这里还是不行.
    我认为还是if(empty($page))那里有问题.因为page的值一直都没有变过.
    我想我原来那样写应该也可以.象我那样写的话分页就是从0开始.如果象你那样写分页就是从1开始.
      

  9.   

    会不会是因为版本的问题呢?我的php是4.2.1半的.
    刚才我试了一下
    如果在if(empty($page))前加上$page=$_GET[page];
    那么可以翻页,但是会提示出错.
      

  10.   

    你看看我写的吧:
    $res=@mysql_query("select * from newstb where new='$new'",$db);
               $total=@mysql_num_rows($res);
         if(empty($total))
                {
                    print "数据库为空";//$total为空的记录数
                 }
                 else
                 {
                    if(empty ($pageno))
                     $pageno=1;//$pageno为当前页
                    
    if($total%15)
    $pagenum=ceil($total/15);//$pagenum是总多少页
    else 
    $pagenum=$total/15;
                            if($pageno<$pagenum)
                            {
                                    $panyi=15;//$panyi 是偏移
                            }
                            else
                            {
                                    $panyi=$total-($pagenum-1)*15;
                            }
                            $s=($pageno-1)*15;
                            $query="select * from newstb where new='$new' order by date desc limit $s,$panyi";
                            $res=@mysql_query($query,$db);
                            print "<span style=\"font-size: 12pt\"><font color=\"#000000\">";
    echo "<br>";
                            if($pagenum==1)
                            {
                                    print "当前1-$panyi"."条新闻,";
                                    print "共有".$total."条新闻";
                            }
                            else
                            {
                                    $sumf=($pageno-1)*15+1;
                                    $suml=$sumf+$panyi-1;
                                    print "当前$sumf-$suml"."条新闻,";
                                    print "共有".$total."条新闻";                        }
                            print "</a></font></span>\n";
                            print "<br><br>";
                            for($i=0;$i<$panyi;$i++)
                            {
                                  
                                    $first=@mysql_result($res,$i,"title");
                                    $date=@mysql_result($res,$i,"date");
                                    $id=@mysql_result($res,$i,"id");
                                    
                                    print "<span style=\"font-size: 10pt\"><font color=\"#000000\">";
                                    print "<img src=\"../image/huang.gif\"> ";
                                    echo "<a href=\"javascript:openWindow('news.php?id=".$id."','newpage','height=400,width=500,top=50,left=150,menubar=no,loctaion=yes,scrollbars=yes,resizeble=no,toolbar=no');\">$first</a>";
                                    print "</a></font></span>\n";
                                    print "<span style=\"font-size: 8pt\"><font color=\"#666666\" face=\"Arial\">[";
                                    print $date;
                                    print "]</font></span>";
                                    print "<br>";
                            }
                         
         ?>
            </td>
          </tr>
          <tr>
            <td bgcolor="#FFFFFF" height="2" valign="middle" width="593" align="center"> 
              <?  if ($pageno>1)
                            {
                                    $priv=$pageno-1;
                            }
                            else
                            {
                                    $priv=1;
                            }
                           // print "</td></tr><tr><td align=center>";
                            print "<span style=\"font-size: 9pt\"><font face=\"Arial\">";
                            print "[";
                            if($pageno==1)
                            print"首页";
                            else
                            print"<a href=\"more.php?pageno=1&new=$new\">首页</a>";
                            print "]";
                            print "<span style=\"font-size: 9pt\"><font face=\"Arial\">";
                            print "[";
                            if($pageno==1)
                            print"上页";
                            else
                            print"<a href=\"more.php?pageno=$priv&new=$new\">上页</a>";
                            print "]";
                            print "[";
                              if ($pageno<$pagenum)
                            {
                                    $next=$pageno+1;
                            }
                            else
                            {
                                    $next=$pagenum;
                            }
                            if ($pagenum==$pageno)
                            print "下页";
                            else
                                    print "<a href=\"more.php?pageno=$next&new=$new\">下页</a>";
                                    print "]";
                                    print "[";
                            if($pageno==$pagenum)
                            print"末页";
                            else
                            print"<a href=\"more.php?pageno=$pagenum&new=$new\">末页</a>";
                            print "]";
                                    print "</font></span>";
                                
                    } ?>
      

  11.   

    谢谢了.我搞定了.还是我说的那地方的问题
    if(empty($_GET["page"])){}这样就可以了.