蓝色魔法

蓝色的魔法,永恒的世界.

PHP如何合理的分页.

十月8

当拥有大量需要呈现给用户时, 一次性把所有数据都显示出来显然不是一个人性化的做法. 一是这样用户会有一种被数据淹没的感觉, 而且非常破坏网页美观, 这个时候就需要用到分页. 分页技术可以再很多地方用到, 例如多个商品需要呈现给客户, 多幅图片等等. 如何合理非常重要. PHP要分页显示说难不难说容易也不容易. 这里我们用从数据库中读取N条数据并且对其进行分页作为例子. 本文的主要目的是让大家了解分页的概念. 先从变量开始, 既然是分页我们就需要个记录总页数的和当前页数的变量, $totalPage, $currentPage, 当前页如无特殊情况默认为0, 那么总页数就需要一些计算了. 计算总页数的方法也和简单,不过在计算之前我们还需要一个变量, $pageSize 每页显示数量和 $totalData需要显示的数据总数. 从数据库读取所有符合要求的数据, 例如价格大于100, 性别等于女等等, 然后用总数除每页显示数量. 不过这里要注意的不能整除的情况. 例如一共8个,每页3个, 那么这样总页数应该是3页而非2.xx页,所以我们用ceil()函数去最小整数. 代码如下:

//计算一共有多少条有效数据

$sql = “select count(*) as amount from table”;

$result = mysql_query($sql);

$row = mysql_fetch_row($result);

$totalData = $row['amount'];

$totalData = ceil($totalData/$pageSize);

这样我们分页的准备工作就都做好了.

接下来就是显示部分, 其实现实部分没什么难点当你学会接下啦的limit的用法.

$sql = “select count(*) as amount from table limit $currentPage*$pageSize, $pageSize

注意limit的部分, limit 0,5意思就是说从第0条数据开始, 读5条数据. 那么上面的代码的意思是, 从当前页*每页数量开始, 读取你设定的每页数量那么多条数据.

接着就按照普通的方法while显示数据就可以了.

最后就是页数导航了用各一个简单的for循环输出就可以了.

这样你的分页就完成了.

posted under PHP, 网页技术

Email will not be published

Website example

Your Comment:

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image