if($page<($totalpage-1))
  $pagestr=$pagestr."- <a href=$PHP_SELF?".($page+1).">下一页</a>";
这句代码是问题,你没有指定一个变量来接受这个$page+1的值
改为:
if ($page<($totalpage-1))
  $pagestr=$pagestr."-<a href=$PHP_SELF?/*page这个变量你可以指定适合你的程序的*/page=".($page+1).">下一页</a>";

解决方案 »

  1.   

    <?      
     $query="content like '%".$key."%' or subject like '%".$key."%'";
     $pagesize=10;
     $rowcount=0;
     $sqlnum="select count(*) as rowsnum from sjzy_content where sjzy_id=".$sjzy_id." and(".$query.")"; 
         $getrowsnum=$db->execute($sqlnum) or die("抱歉,与数据库失去联系!");
         $talking_rows=$getrowsnum->fields['rowsnum'];
         $pageno=ceil($talking_rows/$pagesize)-1;
         $lastnum=$pageno*$pagesize;  echo "<table width=500>";
    $sql="select * from sjzy_content  where sjzy_id=".$sjzy_id." and (".$query.") order by sjzy_channel_id asc,sjzy_content_id desc";
        $db_query = $db->execute($sql);

    IF ($J=="") {$J=0;}

        while(!$db_query->EOF and $db_query->getNumOfRows()<>0){
    IF ($rowcount>=$J and $rowcount<$J+$pagesize)
      {
        $sjy_content_id=$db_query->fields['sjzy_content_id'];
    $sjzy_channel_id=$db_query->fields['sjzy_channel_id'];
    $sql2="select * from sjzy_channel where sjzy_channel_id=".$sjzy_channel_id;
    $db_query2=$db->execute($sql2);
    $sjzy_channel_name=$db_query2->fields['sjzy_channel_name'];
    $subject=$db_query->fields['subject'];
    $dormancy=$db_query->fields['dormancy'];
    $time=$db_query->fields['writetime'];
    $s_time=mydate($time,y).'-'.mydate($time,m).'-'.mydate($time,d);
                 
    if ($dormancy==1)
      {$zt="已发布";}
      else
      {$zt="未发布";}
     echo "<tr><td nowrap>".$sjzy_channel_name."</td><td><a href=sjzyeditshow.php?news_id=".$sjy_content_id.">".$subject."</a></td><td nowrap>".$s_time."</td> <td nowrap>".$zt."</td></tr>";
        }
    $db_query->nextRow();
        $rowcount = $rowcount + 1;
    }
    $db_query->close;
      echo "</table>"; 
      //取得总行数
     ?>
     <hr color="87F1E4">
             <table width="100%" border="0" align="center">
     <tr valign="bottom">
      <td width="300">
        <?
    $F = $J+$pagesize;
    $B = $J-$pagesize;
    If ($B<0){  ?>
    <label diabaled>首页</lable><label diabaled>上一页</lable>
     <?}else{?>
     <a href="sjzyfind.php?key=<?echo $key;?>">首页</a>

        <a href="sjzyfind.php?J=<?echo $J-$pagesize;?>&key=<?echo $key;?>">上一页</a>
     <?} 
      If ($F>=$rowcount){
       ?>
       <label diabaled>下一页</lable><label diabaled>尾页</lable>
      <?}else{?>
        <a href="sjzyfind.php?J=<?echo $J+$pagesize;?>&key=<?echo $key;?>">下一页</a>
        <a href="sjzyfind.php?J=<?echo $lastnum;?>&key=<?echo $key;?>">尾页</a>

    <?}?>
      
     
      总计<font color=#CC0000><?echo $talking_rows;?></font>条记录</td>
    <form name=jump action="sjzyfind.php?key=<?echo $key;?>" method="get">
    <input type="Hidden" name="key" value="<?echo $key;?>">
    <td>共<?echo $pageno+1;?>页,转到
       <select name="J">
        <? for ($i=1;$i<=$pageno+1;$i++) {?>
    <option value="<?echo $i*($pagesize)-$pagesize;?>"><?echo $i;?></option>
    <?}?>
    <option value="0" selected>select</option>
    </select>页
    <input type="Submit" name="submit" value="跳转">
                            </td>
                          </tr>
                   </table>
      

  2.   

    我也给大家看看我的代码~使用感觉不错.显示页码的时候不会把全部页码都显示,而是每次显示10个页码.在这里可以看到具体效果:
    http://www.ledodo.com/news/download.php?action=moreglobal $page;
    $pageSize=22;
    if($page=="")
      $page=1;
    $recstart=($page-1)*$pageSize;
    $sql="select count(*) from tblarticle where colid='$this->colid' and type='$this->type'";
    $this->db->query($sql);
    $reccount=(int)$this->db->result(0);
    $pagecount = floor($reccount/$pageSize);
    if($reccount%$pageSize!=0)
      $pagecount++;
    $sql="select * from tblarticle where colid='$this->colid' and type='$this->type' order by artid desc limit $recstart,$pageSize";
    $this->db->query($sql);
    while($this->db->fetch_array()){
       ...........
       //输出
    }
    /*
    下面的是输出页码
    */
    echo "页: ";    
    $pageStart=floor(($page-1)/10)*10+1;
    $pageEnd=$pageStart+9;
    if($pagecount<$pageEnd)
    $pageEnd=$pagecount;
    if($pageStart>10)
      $html.="<a href=$SCRIPT_NAME?action=more&page=".($pageStart-1).">前10页</a> ";
    for($i=$pageStart;$i<=$pageEnd;$i++){
      if($i!=$page)
          $html.="<a href=$SCRIPT_NAME?action=more&page=$i>$i</a> ";
      else
          $html.="<font color=#60FF60>$i</font> ";

    if($pageEnd<$pagecount)
      $html.="<a href=$SCRIPT_NAME?action=more&page=".($pageEnd+1).">后10页</a>";
    $html.=" / 共".$pagecount."页 &nbsp;&nbsp;&nbsp;";