Benim pagination üzerinde son sayfaya yönlendirir

2 Cevap php

I know this sounds confusing: I have just built some basic prev/next pagination for mysql and i wanted to know, if the last page of my rows is .php?page=5 and someone puts .php?page=263 then i want to redirect them to .php?page=5

Any ideas on how to do this.. the info i currently have is, how many rows are returned after the LIMIT so if it was .php?page=263 then it would be 0 I also have the total number of rows in my database... the LIMIT is 10 :)

Gelişmiş teşekkürler!

2 Cevap

Zaten satır toplam numarası ve sayfa başına görüntüleniyor olacak kaç satır biliyorsanız, o zaman bunu gibi son sayfayı hesaplayabilirsiniz:

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

Sonra, sadece makul bir sınıra Geçerli sayfayı kısıtlamak:

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

Yapılacak en kolay şey, sayfa $_GET['page'] olası maksimum sayıdan daha az, ya da, eğer, bunun için telafi ve ya girdik kontrol ardından, $max_page_number değişkenin çeşit define son sayfaya yönlendirme:

$max_page_number = 10; // or whatever the maximum/last page number is, $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

}

aynı zamanda insanların index.php?page=-10 yakalanmış olmadan giremezsiniz kontrol etmelisiniz düşündüren değer, yani gerçekten sayılar less than ilk sayfa ve greater than için kontrol etmelisiniz son sayfa.