【发布时间】:2015-03-13 19:14:05
【问题描述】:
我目前正在编写一个分页脚本,用于显示每页最多 20 条记录。
我在 Stack Overflow 上发现了一个类似的问题,其中有一个如何执行此操作的示例。我已经尝试了代码并进行了调整,但我无法使其正常运行。
代码是:
$pages = ceil($rescnt['cnt']/$limit);
$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default' => 1,
'min_range' => 1,
),
)));
$offset = ($page - 1) * $limit;
$start = $offset;
$end = min(($offset + $limit), $rescnt['cnt']);
MySQL 数据库中有 41 条记录 (0 - 40)。
第一页显示正确,带有LIMIT 0,20。但是,第二页的限制是 LIMIT 20,40,实际上返回 21 个结果。
脚本计算出总共应该有 3 页(P1 上 20,P2 上 20 和 P3 上 1)但是,P1 有 20,P2 有 21。P3 是空的。
我已尝试更改页面等的计算,但仍然无法正常工作。谁能给我一些关于这个问题的见解?
提前致谢。
【问题讨论】:
标签: php mysql mysqli pagination