Перенаправить пользователя на последнюю страницу на моей странице - PullRequest
0 голосов
/ 25 октября 2009

Я знаю, это звучит странно: Я только что построил базовую предыдущую / следующую нумерацию страниц для mysql, и я хотел знать, если последняя страница моих строк - .php? Page = 5 и кто-то помещает .php? Page = 263, тогда я хочу перенаправить их в .php ? страница = 5

Любые идеи о том, как это сделать .. информация, которая у меня есть в настоящее время, состоит в том, сколько строк возвращается после LIMIT, так что если бы это было .php? Page = 263, то было бы 0 У меня также есть общее количество строк в моей базе данных ... ПРЕДЕЛ 10:)

Заранее спасибо !!

Ответы [ 2 ]

2 голосов
/ 25 октября 2009

Если у вас уже есть общее количество строк, и вы знаете, сколько строк будет отображаться на странице, тогда вы можете рассчитать последнюю страницу следующим образом:

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

Затем просто ограничьте текущую страницу разумным лимитом:

$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
0 голосов
/ 25 октября 2009

Самое простое, что нужно сделать, это определить некоторую форму переменной $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 без его перехвата, поэтому вам действительно нужно проверить номера меньше первой страницы и больше ваша последняя страница.

...