有必要用一个二维数组来读吗?
你可以用数据库的limit来分页处理!!

解决方案 »

  1.   

    to nbufo(网络小生) 谢谢你能回答我的问题,我是刚发现这个论坛的,就抱着试试看的心态,发了这篇贴子。以前到过几个论坛发过贴子,可大部分都不回应,所以就到这看看有没有帮助新手的高手。
    主要问题是我刚学php,还有很多地方不太明白,像你说的limit,我就不会用,你能不能说的更详细一些。
      

  2.   

    例如你每页显示3条
    select *from shijian limit 0,3
    这个就是显示从第一条到第三条记录
    select *from shijian limit 3,3
    这个就是第二页从第四条到第六条,依次类推,就可以实现分页了关于limit后面的两个参数如何计算出来你可以用  
    从第几条开始 = 当前页数*每页显示数-每页显示数;
      

  3.   

    to nbufo(网络小生)我按着你说的用limit,又做了一个程序,如下:<?
    连接数据库
    $page_size=3; //(每页显示3个)
    if($page<=0)
    {$page=1;}
    $nums=mysql_num_rows($result);
    $page_count=ceil($nums/$page_size);
    $offset=($page-1)*$page_size;
    $a="select * from shijian order by date desc limit $offset,$page_size"; //(按时间排序)
    $result=mysql_query($a) or die("浏览失败");
    $prevpage=$page-1;
    $nextpage=$page+1;
    echo "目前留言板上共有".$nums."条留言,本页列出了第".$offset."至".$page_count."条\n"."<br>"; //($page_count这个变量怎么不变呀,老是显示3,怎么才能让它跟着变呀)
    if ($page<=1) 
          echo "第一页"." | ";
    else 
          echo "<a href='$PATH_self?page=1'>第一页</a>"." | ";
    if ($page<2) 
          echo "上一页"." | ";
    else
          echo"<a href='$PATH_self?page=$prevpage'>上一页</a>"." | ";
    if ($page+1>$page_count) 
          echo "下一页"."<br>";
    else
          echo"<a href='$PATH_self?page=$nextpage'>下一页</a>"."\n<br>";
    while ($array=mysql_fetch_array($result))
          {
             echo $array['delid']."\n";
             echo $array['yonghu']."\n";
     echo $array['mima']."\n";
     echo $array['email']."\n";
     echo $array['info']."\n"."<br>";
          
          }
    ?>显示的结果如下:(第一页的结果)目前留言板上共有8条留言,本页列出了第0至3条 
    第一页 | 上一页 | 下一页 
    8 ffff [email protected] 第八个例子 
    7 dsa [email protected] 第七个例子 
    6 00000 [email protected] 第六个例子 第二页的结果:目前留言板上共有8条留言,本页列出了第3至3条 
    第一页 | 上一页 | 下一页 
    5 123 [email protected] 第五个例子 
    4 wangwu [email protected] 第四个例子 
    3 lisi [email protected] 第三个例子 第三页的结果:目前留言板上共有8条留言,本页列出了第6至3条 
    第一页 | 上一页 | 下一页
    2 maroulong [email protected] 第二个例子 
    1 zcy [email protected] 第一个例子 
      

  4.   

    $page_count=ceil($nums/$page_size);按照这样算当然一样喽$page_count=$page*$page_size;
    if($page_count>$nums)
        $page_count = $nums;
      

  5.   

    下面是对一个数组的分页,:),数组就是$result,研究研究咯~function page($page_num,$max_rec,$result)
    {
    for ($i=($page_num-1)*$max_rec;$i<$page_num*$max_rec;$i++)
    {
    if ($i>=count($result)) break;
    $page_rec[$i-($page_num-1)*$max_rec] = $result[$i];
    }
    return $page_rec;
    }function get_page_infor($page_num,$max_rec,$result)
    {
    $page_infor = "<center>共<font color=red> ".count($result)." </font>条记录,每页<font color=red> ".$max_rec." </font>条记录,当前是第 <font color=red>$page_num</font> 页</center>";
    echo $page_infor;
    return true;
    }function get_jump_interface($page_num,$max_rec,$result,$url)
    {
    if (count($result)%$max_rec == 0) $maxnum = count($result)/$max_rec;
    else $maxnum = ((int)(count($result)/$max_rec))+1;
    echo "<br><form name='pag' method='get' action =$url>";
    if ($page_num!=1)
    {
    echo "<a href=",$url,"page_num=1>第一页</a>&nbsp;";
    echo "<a href=",$url,"page_num=",$page_num-1,">前一页</a>&nbsp;";
    }
    else echo "第一页&nbsp;前一页&nbsp";
    ?>
    <select name=page_num onchange="pag.submit()">
    <?
    for ($i=1;$i<=$maxnum;$i++)
    {
    echo "<option value='$i'";
    if ($i==$page_num) echo "selected";
    echo ">$i</option>";
    }
    ?>
    </select>
    <?
    if ($page_num!=$maxnum)
    {
    echo "&nbsp;<a href=",$url,"page_num=",$page_num+1,">后一页</a>&nbsp;";
    echo "<a href=",$url,"page_num=".$maxnum.">最后一页</a>";
    }
    else echo "后一页&nbsp;最后一页&nbsp";
    echo "</form>";
    return true;
    }
      

  6.   

    唉,写程序的时候还不知道要用,limit,看来要改咯~
      

  7.   

    to nbufo(网络小生)照你这个说的做我试了一下,可不好使,显示的内容是:第一页的结果是:目前留言板上共有8条留言,本页列出了第0至3条 
    第二页的结果是:目前留言板上共有8条留言,本页列出了第3(我想让这个变成4)至6条 
    第三页的结果是:目前留言板上共有8条留言,本页列出了第6(我想让这个变成7)至8条 而且最后显示的那页的"下一页"链接,还能链接,本应该显示出最后一页就应没了,这个的显示结果是:目前留言板上共有8条留言,本页列出了第9至8条 (其时已经没有记录了)
    (这样就能一直链接下去,这个9会每显示一页自动加3,如:12、15、18这样的变,8是不变的)我都做好几天了一直没通过,急死我了……
      

  8.   

    在用limit查询的时候是这样的limit 0,4
    是从第一条开始列出四条
    limit 3,4 就是从第四条开始列出四条
    所以你在显示的时候如果直接显示$offset 那肯定是少1的所以你要在显示从第几条到第几条的时候加1if ($page+1>$page_count) 
          echo "下一页"."<br>";
    else
          echo"<a href='$PATH_self?page=$nextpage'>下一页</a>"."\n<br>";这样处理很显然是不对的你可以先用$num = mysql_query("select * from shijian");
    先返回一个总数然后计算出总页数$pages = ceil($num/$page_size);
    然后就简单了$page比$pages下小的允许点下一页不然就不允许喽!!