Frage

Ich weiß, das klingt verwirrend: Ich habe gerade einige grundlegende prev / next Paginierung für mysql gebaut und ich wollte wissen, ob die letzte Seite meiner Zeilen .php? Page = 5 und jemand stellt .php? Page = 263 dann will ich sie umleiten .php ? page = 5

Alle Ideen, wie dieses .. die Info tun zur Zeit ich habe, ist, wie viele Zeilen werden nach der LIMIT zurückgeführt, so wenn es .php? Page = 263 war, dann wäre es 0 sein Ich habe auch die Gesamtzahl der Zeilen in der Datenbank habe ... das LIMIT 10:)

Vielen Dank im Voraus !!

War es hilfreich?

Lösung

Wenn Sie bereits die Gesamtzahl der Zeilen, und Sie wissen, wie viele Zeilen werden Sie pro Seite werden angezeigt wird, können Sie die letzte Seite wie so berechnen:

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

Dann einfach beschränkt die aktuelle Seite auf eine vernünftige Begrenzung:

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

Andere Tipps

Die einfachste Sache zu tun ist, irgendeine Form von $max_page_number Variable definiert, dann überprüfen Sie, dass die Seite eingegeben $_GET['page'] entweder kleiner als die maximal mögliche Anzahl, oder, falls nicht, denn das kompensieren und zur letzten Seite umleiten:

$ max_page_number = 10; // oder was auch immer die maximale / letzte Seitenzahl ist, $ 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

}

es ist auch wert darauf hindeutet, dass Sie sollten die Menschen überprüfen können nicht index.php?page=-10 betreten, ohne es gefangen zu werden, so dass Sie wirklich für Zahlen überprüfen sollen, weniger als die erste Seite und größer als Ihre letzte Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top