我知道这听起来令人困惑:我刚刚为 mysql 构建了一些基本的上一个/下一个分页,我想知道,如果我的行的最后一页是 .php?page=5 并且有人放 .php?page=263 那么我想要将它们重定向到 .php?page=5
关于如何做到这一点的任何想法.. 我目前拥有的信息是,在 LIMIT 之后返回了多少行,所以如果它是 .php?page=263 那么它将是 0 我也有我的数据库中的总行数...限制是 10 :)
提前致谢!!
我知道这听起来令人困惑:我刚刚为 mysql 构建了一些基本的上一个/下一个分页,我想知道,如果我的行的最后一页是 .php?page=5 并且有人放 .php?page=263 那么我想要将它们重定向到 .php?page=5
关于如何做到这一点的任何想法.. 我目前拥有的信息是,在 LIMIT 之后返回了多少行,所以如果它是 .php?page=263 那么它将是 0 我也有我的数据库中的总行数...限制是 10 :)
提前致谢!!
如果您已经有了总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:
$totalPages = ceil( $rows / $perPage );
然后,只需将当前页面限制在合理的范围内:
$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
最简单的做法是定义某种形式的$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
被抓住的情况下无法进入,因此您应该真正检查小于第一页和大于最后一页的数字。