简单实现PHP分页
2013-06-03 22:57
369 查看
php+mysql分页是所有开发语言最简单的。但是性能不是太行,不过既然用mysql做站,那么其实也不用太在意。
这里涉及到几个函数
1、 CTL_PageBar_Show 通过传入总条数和页码以及页尺寸 返回对应的html.里面拼接的html可以自己改,也可以用模板的方式扩展,反正想怎么搞就怎么搞。
2、UpdateParams 更新参数函数,这个自定义函数挺有用。
譬如 $url=www.shengyisyn.org/a.php 如果UpdateParams($url,”page”,1);
则$url的值就会变成
www.shengyisyn.org/a.php?page=1;
同样的,如果 $url=UpdateParams($url,”bb”,’hello’);
那么 则$url的值就会变成www.shengyisyn.org/a.php?bb=hello
记住,调用代码只需调用 CTL_PageBar_Show 这个函数然后echo 结果就行。
有个注意点是,实际上 这个$allcount 数据量小的时候可以直接select count(*),如果数据量很大,那么不适合这么干,需要对其进行缓存。当然好处是速度快了,坏处是分页数据会不准,不过没关系,百度的分页有时也不准。正常现象
转载请注明来自程序员在囧途的官方网站,本文地址:http://www.shenyisyn.org/2013/05/17/phppaging.htm
本站文章除非特别注明其他均为原创,转载请注明出处和链接,违者必究!
这里涉及到几个函数
1、 CTL_PageBar_Show 通过传入总条数和页码以及页尺寸 返回对应的html.里面拼接的html可以自己改,也可以用模板的方式扩展,反正想怎么搞就怎么搞。
function CTL_PageBar_Show($allcount,$p=1,$pagesize=20,$maxpage=10) { //$allcount代表一共有多少条,理论上你要用select count(*) 的方式计算出, $p=1代表当前页码默认是第一页,$pagesize代表每页显示多少条,$maxpage代表每一页中最多显示几页 $pagenum=1; if($allcount>$pagesize) //计算出 共多少页 { if(($allcount%$pagesize)>0) { $pagenum=ceil($allcount/$pagesize); } else $pagenum=intval($allcount/$pagesize); } //每次最多显示 默认10页 $startpage=1; $endpage=$maxpage; if($pagenum<$maxpage) $endpage=$pagenum; if($p>$pagenum) $p=1; //当前页码 大于总页码数 是不允许的,直接令其为1 if($p>$maxpage) { $countpage=(($p/$maxpage)+1)*$maxpage; //计算当前页所属 页码段的最大值 if($countpage>$pagenum) $countpage=$pagenum; $halfmaxpage=$maxpage/2; if($p+$halfmaxpage>$countpage) { $endpage=$countpage; } else $endpage=$p+$halfmaxpage; $startpage= $p-$halfmaxpage; } $pagebar_result=""; $pagebar_result="<a href='".UpdateParams($_SERVER["REQUEST_URI"],"p","1")."'>首 页</a> "; if($p>1) $pagebar_result.="<a href='".UpdateParams($_SERVER["REQUEST_URI"],"p",$p-1)."'>上一页</a> 第"; else $pagebar_result.= "第"; for($i=$startpage;$i<=$endpage;$i++) { if($i==$p) $pagebar_result.= " <a href='".UpdateParams($_SERVER["REQUEST_URI"],"p",$i)."'><font color='red'>[".$i."]</font></a> "; else $pagebar_result.= " <a href='".UpdateParams($_SERVER["REQUEST_URI"],"p",$i)."'>[".$i."]</a> "; } if($p<$pagenum) $pagebar_result.= "页 <a href='".UpdateParams($_SERVER["REQUEST_URI"],"p",$p+1)."'>下一页</a> "; else $pagebar_result.= "页"; $pagebar_result.= " <a href='".UpdateParams($_SERVER["REQUEST_URI"],"p",$pagenum)."'>末 页</a> "; return $pagebar_result; }
2、UpdateParams 更新参数函数,这个自定义函数挺有用。
譬如 $url=www.shengyisyn.org/a.php 如果UpdateParams($url,”page”,1);
则$url的值就会变成
www.shengyisyn.org/a.php?page=1;
同样的,如果 $url=UpdateParams($url,”bb”,’hello’);
那么 则$url的值就会变成www.shengyisyn.org/a.php?bb=hello
function UpdateParams($url,$paramName,$paramValue) { if(strpos($url,$paramName."=")) { $i=strpos($url,$paramName."="); $start=substr($url,0,$i).$paramName."=".urlencode($paramValue);//前面部分截取完毕 $end=substr($url,$i+strlen($paramName."="));//后面部分 if(strpos($end,"&") && strpos($end,"&")>0) $end=substr($end,strpos($end,"&")); else $end=""; $url=$start.$end; } else { if(strpos($url,"?")) //代表 有问号 $url=$url."&".$paramName."=".urlencode($paramValue); //加入参数 else $url=$url."?".$paramName."=".urlencode($paramValue); //加入参数 } return $url; }
记住,调用代码只需调用 CTL_PageBar_Show 这个函数然后echo 结果就行。
有个注意点是,实际上 这个$allcount 数据量小的时候可以直接select count(*),如果数据量很大,那么不适合这么干,需要对其进行缓存。当然好处是速度快了,坏处是分页数据会不准,不过没关系,百度的分页有时也不准。正常现象
转载请注明来自程序员在囧途的官方网站,本文地址:http://www.shenyisyn.org/2013/05/17/phppaging.htm
本站文章除非特别注明其他均为原创,转载请注明出处和链接,违者必究!
相关文章推荐
- PHP分页初探 一个最简单的PHP分页代码实现
- PHP ADODB实现分页功能简单示例
- 简单的PHP+Mysql实现分页
- PHP实战之实现简单的分页
- PHP实现简单数字分页效果
- phpredis实战--简单实现注册,删除,编辑,分页,登录,关注等功能
- PHP长文章分页 实现手动分页代码 代码简单
- php简单分页类实现方法
- PHP简单分页的实现
- php对文本文件进行分页功能简单实现
- PHP实现数据分页显示的简单实例
- PHP分页初探 一个最简单的PHP分页代码实现
- PHP简单实现数字分页功能示例
- php简单分页 和 jquery实现超简单的隔行变色
- php分页代码简单实现
- PHP实现的简单分页类及用法示例
- PHP分页初探 一个最简单的PHP分页代码的简单实现
- php分页查询的简单实现代码
- 原生PHP实现数据筛选以及简单分页功能
- PHP实现简单数字分页效果