php留言板功能做完后,还存在一个问题,就是留言数量变多后,需要鼠标滚动很长的一段距离,这样用户体验不好,所以决定新增加一个功能:
翻页。
我们需要分析一下怎么实现这样一个功能。
需求分析
需求点很明确,每页显示五条一级数据。
具体分析包含了下面三个方面:
取出所有的一级数据
要取出所有一级数据,也就是所有fid=0
的数据。
计算页数
页数 = 取出的所有数据数 / 每页显示的条数。
不能整除的时候,比如说24条数据,24/5得到的数据我们需要向上取整,也就是显示5页。
每一页显示5条数据
这一步关键就是考验sql语句的使用,筛选特定的数据进行显示。
具体实施步骤
取数据
|
|
首先我们要取出所有fid=0的数据,也就是一级数据,拿出来它才能计算出所需要的页数。
|
|
变量$total_num中存放的就是取出的数据条数。
算页数
|
|
这里用到了向上取整的方法ceil( )
,$total_num是刚刚取出的数据量,5是控制每页显示的数量,这就得出了一共需要的页数。
筛选数据
数据取出来,页数也算出来了,剩下的就是要实现怎么在每一页只显示5条数据。
|
|
这句sql的意思就是从comments表中选择fid为0的数据,并且要从第n页开始取5条数据。
注意这里有一个变量$page_list_from
,这表示的是第几页的取数据,也就是页数。
|
|
到这里我们数据差不多也都取出来了,现在需要将它显示到页面中。
依然要用到递归,不过这里的递归和不加分页的几乎一模一样,也就多加了一个$page
参数而已。
|
|
在url跳转的时候,也需要将$page
参数同时传递,不然会引起页面跳转错乱。
补充
说了半天,也没有提到分页导航怎么弄,主要就是通过列表里加链接的方式,根据页数循环出来,
|
|