您的位置:首页 > 编程语言 > PHP开发

PHP分页方式的思想和实现

2013-01-03 01:50 211 查看
分页技术在实现一个完整的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']来判断“上一页”字样是否应该出现。其他异常情况,请读者自己处理。

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



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

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保存当前页的下一页码。通过这样的方式并加上其他代码的“加工”,就能够实现上面的效果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: