在for($i=1;$i<$pagesize;$i++){   //显示当前记录集
前面加上下面这句
mysql_fseek($result,($page-1)*$pagesize);

解决方案 »

  1.   

    mysql那么方便的limit不用?每次把整个记录集查出来,太浪费了吧
      

  2.   

    mysql_fseek($result,($page-1)*$pagesize);  
    加上错了.limit 怎么用呀.
      

  3.   

    select * from mail limit ($page-1)*$pagesize,$pagesize
      

  4.   

    mysql 的limit优化的太好了,是首选
      

  5.   

    http://pear.php.net/package/Pager
    个人感觉对我这样的懒蛋比较好用。
    adodb也有类似的东西的啊。
      

  6.   

    去看看别人写的分页类吧,建议还是用limit来做
      

  7.   

    $sql="select * from mail limit ($page-1)*$pagesize,$pagesize";
      

  8.   

    <?php
    if(empty($_GET['page']))
    {
    $page=1;
    }else{
    $page=$_GET['page'];
    }
    $chang=4;//每页记录数
    $sql="select * from 表名";
    $sel=mysql_db_query($conf_dbname,$sql,$db);
    $num=mysql_num_rows($sel);
    if($num%$chang)
        {$yie=intval($num/$chang)+1;}
    else
        {$yie=$num/$chang;}
    echo "总记录".$num."条 共分为".$yie."页显示 当前为第".$page."页<br>";if($page>1)
        {echo"
        <a href=\"s19_1.php?page=1\">第一页</a>&nbsp; 
        <a href=\"s19_1.php?page=".($page-1)."\">上一页</a>&nbsp;
        "; }
    else
        {echo"首页&nbsp;上一页&nbsp;";}
    if($page<$yie)
        {echo "
        <a href=\"s19_1.php?page=".($page+1)."\">下一页</a>&nbsp; 
        <a href=\"s19_1.php?page=".($yie)."\">最后页</a>
        ";}
    else
        {echo"下一页&nbsp;尾页";}//asc是按升续排列,desc是按降续排列
    $sql="select * from xf_user order by id asc limit ".($page-1)*$chang.",$chang";
    $sel=mysql_db_query($conf_dbname,$sql,$db);
    ?>
    <form action="" name="ffff" method="post">
    <table cellpadding="0" cellspacing="0" border="1">
    <tr><td align="center">ID</td><td align="center">用户名</td><td align="center">密码</td><td align="center">性别</td><td align="center">年龄</td><td align="center">生日</td><td align="center">爱好</td></tr>
    <?php
    while($rut=mysql_fetch_array($sel))
        {echo "<tr>
          <td>$rut[id]&nbsp;</td>
      <td>$rut[username]&nbsp;</td>
      <td>$rut[password]&nbsp;</td>
      <td>$rut[sex]&nbsp;</td>
          <td>$rut[age]&nbsp;</td>
      <td>$rut[birthday]&nbsp;</td>
      <td>$rut[like11]&nbsp;</td>
          <td>&nbsp;<a href=s19_2.php?action=1&did=$rut[id]>修改</a>&nbsp;<a href=s19_2.php?action=0&did=$rut[id]>删除</a>&nbsp;</td></tr>"; 
     //$_SESSION['uid']=$rut[id];
    }
    ?>
    </table>
    </form>参考一下本程序,也许这个你可以用到,用这个翻页很简单的
      

  9.   

    给你个分页吧,改下参数,换个SQL语句就ok了。
    --------------------------------------------------------
    <?
    $gPageSize= 50; //每页显示的记录数$hostname = "localhost"; //mysql Server$dbuser = "root"; //用户名$dbpasswd = ""; //密码//连接数据库$id = mysql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");//选择数据库$db = mysql_select_db("infodb",$id) or die("无法连接数据库!");$query = "select * from ipinfo";//执行查询语句$rresult = mysql_query($query) or die("无法执行SQL:$query");//$page变量标示当前显示的页if(!isset($page)) $page=1;if($page==0) $page=1;//得到当前查询到的纪录数 $nNumRowsif(($nNumRows= mysql_num_rows($rresult))<=0){echo "<p align=center>没有纪录";exit;};//得到最大页码数MaxPage$MaxPage = (int)ceil($nNumRows/$gPageSize);if((int)$page > $MaxPage)$page=$maxPage;?><table align="center" width="80%" border=0> <tr><td><? echo "<font size=2>第
    $page 页,共 $MaxPage 页</font>";?></td><td></td></tr></table><table align="center" width="80%" border="1" cellspacing="0" cellpadding="4" bordercolorlight="#CC9966" bgcolor="#00F2EE" bordercolordark="#FFFFFF" class="LZH"><tr bgcolor="#F7F2ff" style="font-size:14.8px;font-weight:bold"><?//显示表格头for($iCnt = 0; $iCnt < mysql_num_fields($rresult); $iCnt++){echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;}?></tr><?//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面if( mysql_data_seek($rresult,($page-1)*$gPageSize) ){$i=0;//循环显示当前纪录集for($i;$i<$gPageSize;$i++){echo "<tr style=\"font-size:12px\">";//得到当前纪录,填充到数组$arr;$arr= mysql_fetch_row($rresult);if($arr){//循环显示当前纪录的所有字段值for($nOffSet = 0;$nOffSet < count($arr);$nOffSet++){echo "<td>".$arr[$nOffSet]."</td>";}}echo "</tr>";}}?></table><br><hr size=1 width=80%><div align=center style="font-size:12px"><?//首页和上一页的链接if( $nNumRows>1 && $page>1){$prevPage=$page-1;echo " <a href=$PHP_SELF?page=1>首页</a> ";echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";}//下一页和末页的链接if( $page>=1 && $page<$MaxPage){$nextPage= $page+1;echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> ";}?>---------------------------------------------------------------------
      

  10.   

    请问一下,为何$sql="select * from mail limit ($page-1)*$pagesize,$pagesize";
    中的($page-1)要减一啊?
      

  11.   

    请问一下,为何$sql="select * from mail limit ($page-1)*$pagesize,$pagesize";
    中的($page-1)要减一啊?这是因为,limit是一段一段取的,比如你这个程序是一页取两条的,第一页是1~2条记录取出,第二页是3~4条记录取出,以此类推,所以要$page-1。