找回密码
 注册账户
查看: 2508|回复: 6

像GOOGLE一样分页

[复制链接]
admin 发表于 2007-6-3 00:15:37 | 显示全部楼层 |阅读模式
用到的函数:PAGE();

  1. function page ($totalPage , $currentPage,$url ,$halfPer,$imagePath)
  2. {
  3.     $total=$totalPage;
  4.     $currentPage=($currentPage<1)?1:$currentPage;
  5.     $currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
  6.     //echo $currentPage;
  7.     $re="";
  8.     $re .= ( $currentPage > 1 )
  9.         ? "<td><a href="$url=1">首页</a></td>\n<td><a href="$url=".($currentPage-1)."">上一页</a></td>\n"
  10.         : "<td>首页</td>\n";
  11.     for ( $i = $currentPage - $halfPer,$i >= 1 || $i = 1 ,$j = $currentPage + $halfPer, $j < $totalPage || $j = $totalPage;$i <= $j ;$i++ )
  12.     {//核心算法!
  13.         $re .= ($i == $currentPage)
  14.             ? "<td><b class=currentPage> [$i] </b></td>\n"
  15.             : "<td><a href="$url=$i"> [$i] </a></td>\n";
  16.     }
  17.     $re .= ( $currentPage < $total )
  18.         ? "<td><a href="$url=" . ( $currentPage + 1 ) . "">下一页</a></td>\n<td><a href="$url=" . ( $total )."">尾页</a>\n</td>"
  19.         : "<td>尾页</td>\n";
  20.     $re="<table style=text-align:center><tr>$re</tr></table>";
  21.     return $re;
  22. }
复制代码


使用很简单

先包括上面的函数



先检索出总的记录条数。
自己定义一下每页显示多少条:

然后总的页数


  1. $total_row=...;//此为您检索出来的总的记录数
  2. $pagesize=10;
  3. //=======================
  4. //补充如果是整数的话。可以再判断一下如果余数为0就不加1啊。
  5. $totalPage        =($total_row%$pagesize==0) ?intval($total_row/$pagesize): intval($total_row/$pagesize)+1;
  6. //=======================
  7. //$totalPage        = intval($total_row/$pagesize)+1  ; //总页数    ,为什么要加1呢。呵呵。自己去想想:)        
  8. $currentPage    = intval($_GET['page']);        
  9. $url        = "?page";            
  10. $halfPer        = 5;                    
  11. $imagePath    ="images";               
  12. $pageHtml        = page ( $totalPage , $currentPage,$url ,$halfPer,$imagePath);
  13. //echo $pageHtml ;
  14.     $currentPage=($currentPage<1)?1:$currentPage;
  15.     $currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
  16. //上面这两句大家能明白意思不,不要被那个?:吓到,其实就等到if...else.....呵呵
复制代码


下面为怎样检索MYSQL
我只写也关键的那条语句就行了。呵呵。不要骂我懒啊。
首先让我来带大家了解一下LIMIT
LIMIT如果后面只有一个数字,则为检录前多少条。比如LIMIT 20 只为取前20条做为检索的结果。
如果后面有两具数字。则为从多少条起检索多少条,比如 LIMIT 20,10 为从第20条起取10条,那么结果组为21-30条。

好,下面我们就用这个属性来分页:

(天好冷啊,厦门竟然还会这么手冷,晕死,回家过年得了。呵呵。好肺话啊。表打我哦 各位看官,先发表一下,等下再来编辑,不要不小心关年掉了,那不哭死我啊。小便一下先)

(回来了。呵呵)
我们继续上面的讲
我们用一条mysql语句来说明:

  1. $strQuery="select * from myTable limit $offset,$pagesize";

复制代码


大家看到没有,上面出现了两个变量,一个为$offset,一个为$pagesize。
$pagesize大家都知道是什么了是吧。什么?不知道,自己看上面去。
这个$offset即为起始变量,还刻我们刚才提到的LIMIT 20,10吗。
好了,那么我们现在就来敲定这个$offset



其实  $offset = $pagesize*($currentPage-1);
zhanwolf 发表于 2007-6-6 02:59:46 | 显示全部楼层
暂时还用不到
头像被屏蔽
zet138 发表于 2007-6-15 14:51:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
sdqzangel 发表于 2009-2-3 08:00:29 | 显示全部楼层
guofu88 发表于 2011-6-14 09:37:14 | 显示全部楼层
这么牛   学习下
guofu88 发表于 2011-6-14 09:37:54 | 显示全部楼层
好像还想还用不到
guofu88 发表于 2011-6-14 09:38:09 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册账户

本版积分规则

存档|黑屋|手机|网络实验室 本站服务器由美国合租以及IDCLayer国际数据提供!!!

GMT+8, 2026-6-9 17:29 , Processed in 0.020440 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表