我知道这听起来令人困惑: 我刚刚为mysql构建了一些基本的prev / next分页,我想知道,如果我的行的最后一页是.php?page = 5而有人把.php?page = 263然后我想将它们重定向到.php ?page = 5
关于如何做到这一点的任何想法..我目前拥有的信息是,在LIMIT之后返回了多少行,所以如果它是.php?page = 263那么它将是0 我也有我的数据库中的总行数... LIMIT是10:)
提前致谢!!
答案 0 :(得分:2)
如果您已经拥有总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:
$totalPages = ceil( $rows / $perPage );
然后,只需将当前页面限制在合理的限制范围内:
$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
答案 1 :(得分:0)
最简单的方法是定义某种形式的$max_page_number
变量,然后检查输入的页面$_GET['page']
是否小于最大可能数,或者,如果不是,则补偿该变量并重定向到最后一页:
$ max_page_number = 10; //或者最大/最后页码是什么, $ page_requested = $ _GET ['page'];
if ($page_requested <= $max_page_number) {
// show the page requested by the user
}
elseif ($page_requested > $max_page_number) {
// redirect to the relevant page
}
else {
// redirect to the splash page, or first page
}
还值得建议您检查一下,如果没有被抓住,就无法输入index.php?page=-10
,因此您应该检查小于第一页的数字更大比你的最后一页。