将用户重定向到我的分页的最后一页

时间:2009-10-24 22:26:33

标签: php mysql pagination rows

我知道这听起来令人困惑: 我刚刚为mysql构建了一些基本的prev / next分页,我想知道,如果我的行的最后一页是.php?page = 5而有人把.php?page = 263然后我想将它们重定向到.php ?page = 5

关于如何做到这一点的任何想法..我目前拥有的信息是,在LIMIT之后返回了多少行,所以如果它是.php?page = 263那么它将是0 我也有我的数据库中的总行数... LIMIT是10:)

提前致谢!!

2 个答案:

答案 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,因此您应该检查小于第一页的数字更大比你的最后一页。