PHP分页方式的思想和实现

分页技术在实现一个完整的WEB站点时似乎都是必不可缺的,简单说明一下两种分页方式的实现思想:

1.简单分页

      这里的简单分页是指只用数字的方式罗列出所有的页码,如“1 2 3 4 5”形式。这种分页的方式在实现上要简单的多,只要从数据库中查询出符合条件的所有记录总和数(设为$total),再根据你设定的每页最大显示量(设 为$page_size),通过ceil($total/$pagesize)就可以计算出共有多少页(设为$pages),那么只要通过循环输出页码即 可,伪代码形如:

1 for($i=1;$i<=$pages;$i++){
2    echo "<a href='xx.php?p=$i'>$i</a>  ";
3 }

那么,程序就可以根据GET过来的$_GET['p']值获取要响应的页码,以显示指定页面的信息。

2.复杂分页

      这里的复杂分页是指分页实现包含诸如“首页”、“上一页”、“下一页”、“最后一页”及“1 2 3 4 5”字样的最终功能效果(可用字符串连接符‘.’来连接这些字样,并最后输出)。这种实现较上一种要复杂些,因为你必须根据用户的选择判断“首页”、“上 一页”、“下一页”、“最后一页”及“1 2 3 4 5”字样出现的场景,比如说:当显示页面1的信息时,其分页效果中就不应该出现"上一页"这样的字眼,因为从正常的逻辑上来说,首页是没有上一页的。这时 候可以根据GET过来的$_GET['p']来判断“上一页”字样是否应该出现。其他异常情况,请读者自己处理。

我们主要讲一下如何根据当前的页码,判断其下一页和上一页(这里假设当前的页面是具有上一页和下一页的)。你可能在访问某站点的时候见过下面的示意图:

paging.jpg

针对上面的实现,给出以下核心伪代码:

1 $page=$_GET['p'];
2 $prepg=$page-1;//上一页
3 $nextpg=$page+1;//下一页
4 echo "<a href='xx.php?p=$prepg'>上一页</a> ";
5 for($i=1;$i<=$pages;$i++){
6    echo "<a href='xx.php?p=$i'>$i</a>";
7 }
8 echo "<a href='xx.php?p=$nextpg'>下一页</a> ";

$page代表当前页码,$pregpg保存当前页的上一页码,$nextpg保存当前页的下一页码。通过这样的方式并加上其他代码的“加工”,就能够实现上面的效果了。

你可能感兴趣的:(PHP,分页)