以下是我在一个页面中的代码,在编分页时出错了,不知道哪里不对.无法成功分页.我想要的分页效果是:每页显示20条,超过的分到下一页.请指教!
====================================================
<?
require('header.inc.php');
$page=$_GET['page'];
if (!is_numeric($_GET['page']) or $_GET['page']=='' or $_GET['page']==0) $page=1;
?>
<?
if (isset($_GET['id']) or $_GET['id']!='') {
 require('config.php');
 $res=mysql_query("SELECT * FROM wz_site WHERE id='".$_GET['id']."'");
 $result=mysql_fetch_array($res);
 
 {
  echo ('<p>不存在的信息。<a href=ptc.php>返回</a></p>
');
  include('footer.inc.php');
  exit();
 }
?>
<?
$num=mysql_num_rows($res);
$array_totalpage=explode(".",($num/10));
$totalpage=$array_totalpage[0]+1;
if ($page>$totalpage) $page=$totalpage;
if ($page==1) {
 $start=0;
 $stop=10;
} else {
 $start=($page-1)*10;
 $stop=$page*10;
}
?>
<div align=center>
<table border="0" width="900">
<tr>
<td><p align=left>站点:<?=$result['id'] ?></p>
<p align=left>站点名称:<?=$result['name'] ?></p>
<p align=left>连接:<a href=<?=$result['link'] ?> target=_blank><FONT color=#ff0000><?=$result['link'] ?></FONT></a></p>
<p align=left>下成:<?=$result['inpercent'] ?></p>
<p align=left>每值:<?=$result['worthclick'] ?></p>
<p align=left>支额:<?=$result['paymethod'] ?>   
  <a href="wangyin.php?id=24" target="_blank">(点击注册AP)</a><a href="wangyin.php?id=23" target="_blank">(点击注册PP)</a></p>
<p align=left>其他说明:<FONT color=#ff0000><?=$result['elsetips'] ?></FONT></p>
<p align=left>反比:<?=$result['backpercent'] ?>   <A title=点击查看?返佣名词详细解释 href="xueyuan.php?id=62" target=_blank>【(新手必读)】</A></p>
<p align=left>时间:<?=$result['fanyongtime'] ?></p>
<p align=left>登记:<a href="fanyong.php?id=<?=$result['id'] ?>" target="_blank"><font color="ff0000">点击这里申请登记!</font></a></p>
<p align=left>反俑记录:<a href="history_offer_public.php?id=<?=$result['id'] ?>" target="_blank"><font color="ff0000">点击这里查看该站记录!</font></a></p>
<p align=left>站点教程:<a href="xueyuan.php?id=62" target="_blank">【——通用操作教程(新人必读)】</a></p>
<?=$result['description'] ?>
<p>本页面最后更新时间:<?=$result['time'] ?></p>
</td>
</tr>
</table>
</div>
<?
 include('footer.inc.php');
 exit();
}
require('config.php');
?>
<div align=center>
<table width="960" border="1" cellspacing="0" bordercolor="#787C7F">
  <tr bgcolor="FF9900">
    <td width="50" height="24" align="center" valign="middle" background="Ku_img/index_14.jpg" class="STYLE4">ID号</td>
          <td width="154" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900" class="STYLE4" ><FONT color=#00ffff>站名/打开教程</FONT></td>
          <td width="78" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900" class="STYLE4" >点值</td>
          <td width="118" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900" class="STYLE4"  >请额</td>
          <td width="70" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900"  class="STYLE4" >下成</td>
          <td width="370" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900"  class="STYLE4" >说明</td>
          
          <td width="74" align="center" valign="middle" background="Ku_img/index_14.jpg" bgcolor="FF9900"  class="STYLE4" >反比</td>
    </tr>
<?
$res=mysql_query("SELECT * FROM wz_site WHERE type='ptc_xin' ORDER BY id DESC");
while($result=mysql_fetch_array($res)) {
?>
    <tr bgcolor="#cccccc"><td height="28" align="center" valign="middle"><?=$result['id'] ?></td>
          <td align="center" valign="middle"><a href=ptc.php?id=<?=$result['id'] ?> target="_blank"><FONT color=#3333FF><?=$result['name'] ?></FONT></a></td>
          <td align="center" valign="middle"><?=$result['worthclick'] ?></td>
          <td align="center" valign="middle"><?=$result['paymethod'] ?></td>
          <td align="center" valign="middle"><?=$result['inpercent'] ?>
          %</td>
          <td align="center" valign="middle" bgcolor="#cccccc"><FONT color=#000000><?=$result['elsetips'] ?>
          </FONT></td>
          <td align="center" valign="middle"><?=$result['backpercent'] ?>%</td>
    </tr>
<?
}
?>
</table>
<p>第<?=$page ?>页,共<?=$totalpage ?>页<?
if ($page!=1) {
?> <a href=ptc.php?page=<?=($page-1) ?>>上一页</a><?
}
if ($page<$totalpage) {
?> <a href=ptc.php?page=<?=($page+1) ?>>下一页</a><?
}
?> <a href=ptc.php?page=<?=$totalpage ?>>最后一页</a>
</div>
<?
include('footer.inc.php');
?>

解决方案 »

  1.   

    分页用的sql语句一般都是带limit的。根据limit 来确定显示记录的位置。你的查询语句是不是不对啊?
      

  2.   

    $res=mysql_query("SELECT * FROM wz_site WHERE type='ptc_xin' ORDER BY id DESC"); 
    这个...有问题
      

  3.   

    使用limit参数 或者使用mysql_date_seek函数
      

  4.   

    //pages http://www.sinbao.cn
    function showpage($total_num, $perpage, $curr_page, $curr_url) {
            $showpagestr = '';
            if($total_num > $perpage) {
                    $page = 10;
                    $offset = 2;                $pages = ceil($total_num / $perpage);
                    $from = $curr_page - $offset;
                    $to = $curr_page + $page - $offset - 1;
                    if($page > $pages) {
                            $from = 1;
                            $to = $pages;
                    } else {
                            if($from < 1) {
                                    $to = $curr_page + 1 - $from;
                                    $from = 1;
                                    if(($to - $from) < $page && ($to - $from) < $pages) {
                                            $to = $page;
                                    }
                            } elseif($to > $pages) {
                                    $from = $curr_page - $pages + $to;
                                    $to = $pages;
                                    if(($to - $from) < $page && ($to - $from) < $pages) {
                                            $from = $pages - $page + 1;
                                    }
                            }
                    }
    $parse_url=parse_url($curr_url);
    $url_query=$parse_url["query"]; 
    if(!empty($url_query)){
    $url_query = ereg_replace("(^|&)p=$curr_page","",$url_query);
    $url = str_replace($parse_url["query"],$url_query,$curr_url);
    if(!empty($url_query)) $url .= "&p"; 
    else $url .= "p";
    }else {
    $url = $curr_url."p";
    }
                    $showpagestr .= "Total : ". $total_num ."&nbsp;&nbsp;<a href=\"$url=1\">First</a> &nbsp;";
                    for($i = $from; $i <= $to; $i++) {
                            if($i != $curr_page) {
                                $showpagestr .= "<a href=\"$url=$i\">$i</a>&nbsp;";
                            } else {
                                $showpagestr .= '<b>'.$i.'</b>&nbsp;';
                            }
                    }
                    $showpagestr .= " <a href=\"$url=$pages\">Last</a>";
    $showpagestr .= "&nbsp;&nbsp;<select name=\"page\" onchange=\"window.location.href = this.value;\">";
    for ($j=1; $j<=$pages; $j++) {
    $showpagestr .= "<option value=\"". $url ."=". $j ."\"";
    if ($curr_page==$j) { 
    $showpagestr .= " selected>";
    } else {
    $showpagestr .= ">";
    }
    $showpagestr .= $j ."</option>";
    }
    $showpagestr .= "</select>";
            }
            return $showpagestr;
    }
      

  5.   

    太累人了,给你推荐个分页类吧
    http://www.kaiyuanba.cn/html/1/131//140/3714.htm
    拿过来就可以直接用
      

  6.   

    <?php
    // 建立数据库连接
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
          or die("Could not connect: " . mysql_error());
    // 获取当前页数
    if( isset($_GET['page']) ){
       $page = intval( $_GET['page'] );
    }
    else{
       $page = 1;
    }
    // 每页数量
    $PageSize = 10;
    // 获取总数据量
    $sql = "select count(*) as amount from table";
    $result = mysql_query($sql);
    $row = mysql_fetch_row($result);
    $amount = $row['amount'];
    // 记算总共有多少页
    if( $amount ){
       if( $amount < $page_size ){ $page_count = 1; }               //如果总数据量小于$PageSize,那么只有一页
       if( $amount % $page_size ){                                  //取总数据量除以每页数的余数
           $page_count = (int)($amount / $page_size) + 1;           //如果有余数,则页数等于总数据量除以每页数的结果取整再加一
       }else{
           $page_count = $amount / $page_size;                      //如果没有余数,则页数等于总数据量除以每页数的结果
       }
    }
    else{
       $page_count = 0;
    }// 翻页链接
    $page_string = '';
    if( $page == 1 ){
       $page_string .= '第一页|上一页|';
    }
    else{
       $page_string .= '<a href=?page=1>第一页</a>|<a href=?page='.($page-1).'>上一页</a>|';
    }
    if( ($page == $page_count) || ($page_count == 0) ){
       $page_string .= '下一页|尾页';
    }
    else{
       $page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>尾页</a>';
    }
    // 获取数据,以二维数组格式返回结果
    if( $amount ){
       $sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";
       $result = mysql_query($sql);
      
       while ( $row = mysql_fetch_row($result) ){
           $rowset[] = $row;
       }
    }else{
       $rowset = array();
    }
    // 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果
    ?>以上就是php中的一个简单分页
      

  7.   

    <?php
    $sql = "select * from corp_news where rubbish=1";
    $result = mysql_query($sql);
    $count = mysql_num_rows($result);
    //分页开始
    $pagecount = 12; //12条
    $countpage = ceil($count/$pagecount);
    if($page = $_GET["page"]){
    $page = $_GET["page"];
    if($page < 0){$page = 1;};
    if($page > $countpage){$page = $countpage;};
    }else{
    $page = 1;
    }
    $span = ($page - 1)*$pagecount;
    $sql_1 = $sql." limit $span,$pagecount";
    //分页结束
    $result_1 = mysql_query($sql_1);
    $rs = mysql_fetch_array($result_1);
    <td align="center" colspan="9"><a href="select.php">首页</a>/<a href="select.php?page=<?=($page - 1)?>">上一页</a>/<a href="select.php?page=<?=($page + 1)?>">下一页</a>/<a href="select.php?page=<?=($countpage)?>">尾页</a>/ 共<?=$countpage?>页  当前<?=$page?>页</td>不明白写了那么多有什么用???????