黑马程序员技术交流社区
标题: 【黑马程序员济南】PHP模块讲解之分页模块讲解 [打印本页]
作者: 小鲁哥哥 时间: 2018-1-3 15:16
标题: 【黑马程序员济南】PHP模块讲解之分页模块讲解
本帖最后由 小鲁哥哥 于 2018-1-5 14:09 编辑
【黑马程序员济南】PHP模块讲解之分页模块讲解
作为一个Web程序,经常要和不计其数的数据打交道,比如会员的数据,文章数据,假如只有几十个会员那很好办,在一页显示就可以了,可是假如你的网站是几千甚至几十万会员的话,如果都在一页打开的话无论对浏览器还是观看者都是一种折磨,而且如果数据上亿,从数据库里查询一次的话,对服务器的压力是很大的,这不是正确的方法。而解决这些问题比较合适的方法就是分页。
今天我们就来简单的介绍一下如何实现分页功能
首先我们先来了解什么是分页?
分页(pagination),即将一个页面的数据分成两个或两个以上的页面来展示该数据。
分页的实现原理:
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?
以MySQL数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select *from table limit 10,10
第21至30条记录:select *from table limit 20,10
我们如何去获取这些offset和rows的数据那?
其实就是我们在之前要求给的参数里就可以获取到
每页有多少条记录 è 对应的就是rows
但是当前是第几页跟偏移量却是一点关系都没有,那我们应该如何去获取到这些信息那?
我们回过头来继续看上面的案例
每页显示10条
第一页: 0 , 10
第二页: 10 , 20
第三页: 20 , 30
第四页: 30 , 40
……
第十页: 90 , 100
大家有没有从中发现他的规律那?
没错,就是这个公式:
offset这个偏移量 =(页码数-1)*rows;
这样的话实现mysql分页的需要的参数我们就都获取出来了
所以上面案例中得到的数据我们就可以这样获取:
SELECT* FROM table LIMIT ($CurrentPageID-1)* $PageSize, $PageSize;
到此为止,分页的基本原理就给大家介绍到这里,不知道大家对我今天讲解的分页的原理理解的如何,有什么问题可以在下面留言哦~
如果你想了解更多黑马课程请点击这里,如果你想加入黑马这个大家庭学习先进技术,广交天下好友! 黑马程序员济南中心联系电话:0531-55696830
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |