-
Numérotation de pages
Bonsoir,
j'ai un truc à faire pour lequel j'imagine une solution (PHP+MySQL), mais j'aimerais avoir un avis avant de me lancer :
Ce que je voudrais faire, c'est numéroter les pages de mon site et mettre sur chaque numéro un lien vers la page (comme c'est fait par exemple sur ce forum).
Voici mon idée :
- créer une table MySQL avec pour chaque page son numéro et son URL.
- dans chaque page, mettre en PHP :
Code:
$numero_courant=xx;
afin de savoir où on est quand on ouvre la page.
- dans chaque page, lire le contenu de la table MySQL et pour chaque numéro, mettre un lien vers l'URL correspondant à la page, sauf pour $numero_courant.
Que vaut cette idée ?
-
Salut
Te prend pas la tête avec une solution si compliquée. D'autant plus que sa performance dépend de la taille de ton site (si c'est un forum et que certains de tes topics font 200 pages, ta table des pages deviendra très grosse pour rien).
L'idéal est de s'appuyer sur les fonctionnalités de pagination de ton SGBD (en l'occurence MySQL et son fameux "LIMIT") pour récupérer "les messages de 20 à 30 concernant tel topic", ou "les billets de 200 à 350 concernant tel blog", etc.
C'est plutôt bien expliqué dans la FAQ : http://php.developpez.com/faq/index....pts-pagination ;)
-
Merci pour le lien ; j'y ai jeté un coup d'oeil, mais je me suis demandé d'ou venait le ds
Code:
$page = isset($_GET['page']) ? max(intval($_GET['page']), 1) : 1;
Saurais-tu m'éclairer ?
-
Salut,
le $_GET récupère le numéro de page passé dans l'URL par exemple ici :
Code:
echo '<li><a href="' . basename(__FILE__) . '?page=' . ($page - 1) . '">Page précédente</a></li>';
-
Même si je n'ai pas entièrement compris le code, j'ai quand même compris que le texte qu'on est censé afficher est supposé être dans une table MySQL, et qu'on peut éventuellement en afficher plusieurs par page (comme les posts d'un forum, par exemple). Mais si ce qu'on veut numéroter, ce sont des pages web, pas du tout logées dans une table MySQL (et qu'il n'y a pas beaucoup de pages), mon idée ne tiendrait-elle pas la route ?