蓝色魔法

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

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. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word