博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP最简单的分页!
阅读量:5011 次
发布时间:2019-06-12

本文共 4192 字,大约阅读时间需要 13 分钟。

最近学习php分页,结合他人的思想总结了分页的一点经验,在这里分享一下,第一次写博客,大家交流交流!

分页的思想可以根据mysql里的select * from mytable limit 0,10得到,这里0表示第一页开始,10表示每页10条记录。有了这个依据,接下来我们可以将0定义成$page,10定义成$pagesize,只要能正确获取这两个参数,那我们的分页就成功了。

接下来需要定义首页,上一页,下一页,末页和所有页码这些按钮,所有页码的按钮可以通过遍历总页数获得,这里总页数可以通过下面方法获得:

View Code
1 $test=mysql_query("select count(*) as amount from mission");2             $s=mysql_fetch_array($test);3             $amount=$s['amount'];//获取记录总数目4             $numpages=ceil($amount/$pagesize);//总记录数除以每页记录数,然后利用ceil向上取整获取总页数

如果得出总页数等于1,就不需要分页直接打印出就行了。

页数大于一,若当前页在首页,就不需要首页和上一页这两个按钮,反之添加首页和上一页。

然后添加两个临时的页码起始和终止位置,这里我们页码的循环是在两个临时变量之间$starttempid,$endtempid,目的是判断是否添加...按钮,因为如果我们的页面有100多页的话不可能把所有按钮显示出来,所以在距离当前页额定数量就会带省略号。

通过循环变量$i,打印出需要显示的页码,最后再判断是否添加下一页和末页。

这样我们每次点击一个按钮都会传入正确的页码,即$page,像这样传入url:/xxx.php?page=1,然后执行sql查询select * from mytable limit $page,$pagesize,利用while($row=mysql_fetch_array($result)){echo .....}就能打印出页面数据,下面是部分示例代码:

View Code
1 
1

";10 }11 if($numpages>1)//页数大于1的情况进行分页12 {13 if($page>1)//判断如果当前页大于第一页,则添加首页和上一页的按钮14 {15 $str=$str."  首页  上一页";16 }17 $starttempid=1;//临时页面起始位置,默认为118 $endtempid=$numpages;//临时页面终止位置,默认为页面总数19 if($page-1>5)//这里判断当前页与首页是否超过限定数目,超过则将starttempid赋当前页减去限定数目20 {21 $starttempid=$page-6;22 }23 if($numpages-$page>5)//这里判断当前页与末页是否超过限定数目,超过则将endtempid赋当前页加上限定数目24 {25 $endtempid=$page+6;26 }27 if($starttempid>1)//这里判断前面的临时页面起始位置如果大于首页,则页面分页从临时页面开始起,并且用省略号...来代替首页28 {29 $str=$str."  ...";30 }31 for($i=$starttempid;$i<=$endtempid;$i++)//这里进行页面分页循环32 {33 if($i==$page)//循环到当前页,则不需要链接34 {35 $str=$str."  ".$i."";36 }37 else //为每个页面添加链接38 { 39 $str=$str."  ".$i."";40 }41 }42 if($endtempid<$numpages)//判断前面的临时页面如果小于总页数,分页到endtempid结束,并且用...来代替末页43 {44 $str=$str."  ...";45 }46 if($page<$numpages)//当前不是最后一页,添加下一页和末页按钮47 {48 $str=$str."  下一页  末页";49 }50 echo $str;//打印到文档中51 }52 $countcolor=true;53 echo "
";54 $spage=$page-1;//传递分页变量,当前页-155 $showdata=mysql_query("select * from mission order by starttime_u DESC,id_mission limit $spage,$pagesize");//分页查询56 while($mys=mysql_fetch_array($showdata,MYSQL_ASSOC))//循环打印出信息,接下来就是格式化打印出信息57 {58 59 if($countcolor==true)60 {61 echo "
";86 }87 echo "
";62 $countcolor=false;63 }64 else 65 {66 echo "
";67 $countcolor=true;68 }69 echo "

";70 if($_COOKIE['m']=="admin")71 {72 echo "
";73 }74 else 75 {76 //echo "
".$mys['id_mission']."
";77 }78 echo "
".$mys['starttime_u']."  到  
".$mys['endtime_u']."
";79 echo "
";80 echo "
";82 echo "
详细内容:".$mys['content_u'];83 echo "
";84 echo "
"; 85 echo "
";88 ?>

 

这个是最后运行出的效果,最常用的显示效果:

转载于:https://www.cnblogs.com/cc11/archive/2012/11/04/php_cc.html

你可能感兴趣的文章
springMVC入门(一)------springMVC基本概念与安装
查看>>
Sam做题记录
查看>>
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>
BirdNet: a 3D Object Detection Framework from LiDAR information
查看>>
icon fonts入门
查看>>
【Django】如何按天 小时等查询统计?
查看>>
HDU2191(多重背包)
查看>>