2009-10-24 2 views
0

Je sais que cela semble déroutant: Je viens juste de construire une pagination de base prev/next pour mysql et je voulais savoir, si la dernière page de mes lignes est .php? Page = 5 et quelqu'un met .php? Page = 263 puis je veux les rediriger vers .php? Page = 5Rediriger l'utilisateur vers la dernière page de ma pagination

Toutes les idées sur la façon de le faire .. l'info que j'ai actuellement est, combien de lignes sont retournées après le LIMIT donc si c'était .php? Page = 263 alors il serait 0 J'ai aussi le nombre total de lignes dans ma base de données ... la limite est 10 :)

Merci d'avance !!

Répondre

2

Si vous avez déjà le nombre total de lignes, et vous savez combien de lignes vous afficherez par page, vous pouvez calculer la dernière page comme ceci:

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

Ensuite, limiter simplement le courant la page à une limite raisonnable:

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

J'ai effectivement travaillé cela avec des maths compliquées juste avant de poster ceci :(haha! – tarnfeld

0

la chose la plus facile à faire est de définir une certaine forme de $max_page_number variable, vérifiez que la page est entrée $_GET['page'] est soit inférieur au nombre maximum ou, sinon, compenser ce et redir ect à la dernière page:

$ max_page_number = 10; // ou quel que soit le nombre maximum/dernière page, $ 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 

} 

il est également intéressant de suggérer que vous devriez vérifier les gens ne peuvent pas entrer index.php?page=-10 sans être pris, donc vous devriez vraiment vérifier les numéros moins de la première page et supérieure à votre dernière page.

Questions connexes