您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> php >> 正文

给何版主, 机器民主和lilyxie: 关于分页机制.

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-2-2 我要参与讨论

 
   1. 分页的前提是记录按id排序, 且不连续, 比如有些记录被删除,
   或者要分页显示查找结果, 这样就有了除分页外的条件$q
2. 确定分页的方式:
(1): 用简单的"页首, 上一页, 下一页".
(2): 用"1,2,3,4,5,6,..........末尾"来指定跳到某页.
3. 实现分析:
(1) 如果先查询全部结果, 只显示其中的部分. 这种方式显然不好,
    会累坏server.
(2) 对于用limit m,n实现分页, 有些不负责, 服务器在实际操作时还是
    按$q条件找出所有结果, 然后只返回m后的n条. server工作仍然很多.
(3) 优化的办法是知道要显示页的起始$id, 查询
   "where $q and id>=$id order by id desc limit 0,$page_length"
   这样mysql 会先按id的索引找到符合条件的id, 然后再评估$q.
(4) 那$id怎么来呢?
(5) 对于显示方式1, 每页多查询一条,最后一个记录的$id就是啦
    "where $q and id>=$id order by id limit 0,$page_length+1"
    if (mysql_num_rows($result) > $page_length) echo "下一页"
   //(记住最后一条记录不要显示!)
   //如果不使用第二种分页方式, 到此结束.
(5) 对于显示方式2, 后面$page_offset=6页的每页起始id要一次知道.
"select id from xxxx where $q order by id desc limit 0,$page_length*$page_offset"
for($i=0;$i*$page_length<$mysql_num_rows($result);$i++){
    $start=mysql_result($result,$i*$page_length,0);
    echo '<a href=../../"xxxxx?pageno='.($i+1)."&id=$start\">";
    if ($id==$start) echo "<b>$i</b>"; //加重显示当前页号
&

[1] [2] [3] 下一页

在google里搜索更多给何版主, 机器民主和lilyxie: 关于分页机制.

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明