题
我知道这听起来令人困惑: 我刚刚为mysql构建了一些基本的prev / next分页,我想知道,如果我的行的最后一页是.php?page = 5而有人放了.php?page = 263那么我想将它们重定向到.php ?page = 5
关于如何做到这一点的任何想法..我目前拥有的信息是,在LIMIT之后返回了多少行,所以如果它是.php?page = 263那么它将是0 我也有我的数据库中的总行数... LIMIT是10:)
提前致谢!!
解决方案
如果您已经拥有总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:
$totalPages = ceil( $rows / $perPage );
然后,只需将当前页面限制在合理的限制范围内:
$page = isset( 如果您已经拥有总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:
$totalPages = ceil( $rows / $perPage );
然后,只需将当前页面限制在合理的限制范围内:
<*>GET['page'] ) ? (int) 如果您已经拥有总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:
$totalPages = ceil( $rows / $perPage );
然后,只需将当前页面限制在合理的限制范围内:
<*>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
而不会被捕获,所以您应该检查小于>的数字em>第一页,大于您的最后一页。
不隶属于 StackOverflow