我知道这听起来令人困惑: 我刚刚为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>第一页,大于您的最后一页。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top