本帖最后由 小鲁哥哥 于 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
|