2009-10-24 1 views
0

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

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

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

ответ

2

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

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

Тогда просто ограничить ток страница до разумного предела:

$page = isset($_GET['page']) ? (int) $_GET['page'] : 1; 
$page = min(max($page, 1), $totalPages); 
+0

Я действительно работал с некоторыми сложными математиками, прежде чем вы разместили это: (ха-ха! – tarnfeld

0

Проще всего сделать, это определить, какой вид $max_page_number переменной, а затем проверить, что страница вошла $_GET['page'] либо меньше максимально возможного числа, или, если нет, то это компенсировать и redir ect до последней страницы:

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

 Смежные вопросы

  • Нет связанных вопросов^_^