8.6 PHP 数据库分页

页码 url中get值 limit偏移量,数量
第1页 1 0,5
第2页 2 5,5
第3页 3 10,5
第n页 n (n-1)*5,5

当前页

刚进入page.php页时,url为http://www.php.com/page.php,后面是不存在 ?page=1 页面标识号的。

因此我们需要手动创建一个页面标识号传给当前页码变量$page。

我们害怕用户传的页面中存在小数等,所以我们做一次强制的类型转换:(int) $_GET['page']。

第一种写法:

$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;

第二种写法

if (isset($_GET['page'])) {
    $page = (int) $_GET['page'];
} else {
    $page = 1;
}

---------------------------------------------------------------------------------------------------------------------------------------------

每一页一定是一个整数。就跟小学的时候数学一样。平均有5.6个人应该准备几个苹果。答案一定是6个。

如果页面出来了20.3个页面,一定是使用进一法取整函数ceil。让分页数变为21。

我们用总数除以每页显示的数据条数,就得到了总页数了。

//每页显示数
$num = 5;
$total = ceil($count / $num);

----------------------------------------------------------------------------------------------------------------------

如果用户的在第一页点击了上一页,在最后一页点击了下一页怎么办呢?

这样的话数据会超出范围,而造成我们分页时无数据显示。

显然这种异常情况需要考虑到。因此,如果在分页时在第一页减一时,我们就让他为第一页。
在最后一页加一时,我们就让他为最后一页,即完成了异常控制。

if ($page <= 1) {
    $page = 1;
}
if ($page >= $total) {
    $page = $total;
}

猜你喜欢

转载自blog.csdn.net/wocaa2046/article/details/81455151
8.6