0

我知道这听起来令人困惑:我刚刚为 mysql 构建了一些基本的上一个/下一个分页,我想知道,如果我的行的最后一页是 .php?page=5 并且有人放 .php?page=263 那么我想要将它们重定向到 .php?page=5

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

提前致谢!!

4

2 回答 2

2

如果您已经有了总行数,并且知道每页将显示多少行,那么您可以像这样计算最后一页:

$totalPages = ceil( $rows / $perPage );

然后,只需将当前页面限制在合理的范围内:

$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
于 2009-10-24T22:35:27.920 回答
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被抓住的情况下无法进入,因此您应该真正检查小于第一页和大于最后一页的数字。

于 2009-10-24T22:36:04.847 回答