|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Pagination d'une requête 109 ligne sur pages de 20 lignes [ Base de données / MySQL ] (ragmo)
Informations & options pour cette discussion
jeudi 16 octobre 2008 à 11:42:54 |
Pagination d'une requête 109 ligne sur pages de 20 lignes

ragmo
|
Bonjour, Je voulais savoir comment on pouvait gérer la pagination des nombres de lignes ramenées par une requête (Base MySQL) pour n'afficher que 20 lignes par page (en PHP), et qu'en bas de la page on a l'accès aux autres pages 1, 2, 3, 4, 5, .. >> (si l'on est sur la première page). Je sais que que le nombre de mes pages est le rapport (Nbr lignes résaltant de la requête / 20) +1 si le reste est différent 0. Mais problème se situe dans l'appel de la page appelée, comment faire en sorte que les données des lignes 21 à 40 s'affichent quand j'appelle la page 2. Cordialement.
|
|
|
jeudi 16 octobre 2008 à 12:04:16 |
Re : Pagination d'une requête 109 ligne sur pages de 20 lignes

neigedhiver
|
Salut, La lecture de la doc pourrait s'avérer utile, avant de poser ce genre de question. http://dev.mysql.com/doc/refman/5.0/fr/select.html La clause LIMIT peut être utilisée pour limiter le nombre d'enregistrements retournés par la commande SELECT. LIMIT accepte un ou deux arguments numériques. Ces arguments doivent être des entiers constants. Avec un argument, la valeur spécifie le nombre de lignes à retourner depuis le début du jeu de résultat. Si deux arguments sont donnés, le premier indique le décalage du premier enregistrement à retourner, le second donne le nombre maximum d'enregistrement à retourner. Le décalage du premier enregistrement est 0 (pas 1) : Pour être compatible avec PostgreSQL, MySQL supporte aussi la syntaxe : LIMIT row_count OFFSET offset. mysql> SELECT * FROM table LIMIT 5,10; # Retourne les enregistrements 6 à 15
Pour obtenir tous les enregistrement d'un certain décalage jusqu'à la fin du résultat, vous pouvez utiliser de grands entier en tant que second paramètre : mysql> SELECT * FROM table LIMIT 95,18446744073709551615; # Retourne les enregistrements de 96 jusqu'au dernier.
Si un seul argument est donné, il indique le nombre maximum d'enregistrements à retourner : mysql> SELECT * FROM table LIMIT 5; # Retourne les 5 premiers enregistrements
Autrement dit, LIMIT n est équivalent à LIMIT 0,n.
Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
|
jeudi 16 octobre 2008 à 12:36:29 |
Re : Pagination d'une requête 109 ligne sur pages de 20 lignes

ragmo
|
Merci Neige,
Donc, si j'ai bien compris, à chaque fois que je dois afficher une page je relance une nouvelle requête ? Cela me paraîtrait un peu lourd. Donc au total, j'aurai ma première requête pour compter le nombre de lignes concernées, puis je fais une deuxième requête pour ramener la première page les lignes de 1 à 20 si cette page est demandée, ensuite quand je clique sur le lien pointant sur la page 2 je relance ma requête encore une nouvelle pour ramener les lignes de 21 à 40, et ainsi de suite jusqu'à la limite de mes nombre de lignes ??
Cela peut marcher, mais je me demande s'il n'y a pas un moyen me permettant d'économiser les entrée/sortie à la base tel que le rafraîchissment des données préalablement stockées dans un tableau par exemple.
Cordialement
|
|
|
jeudi 16 octobre 2008 à 13:05:55 |
Re : Pagination d'une requête 109 ligne sur pages de 20 lignes

neigedhiver
|
Si, c'est possible, il faudrait pour cela mettre le résultat de la requête en cache. La GRANDE question est : comment le mettre en cache... Et c'est là qu'on se rend compte que finalement, refaire la requête, c'est pas plus lourd que de mettre en cache, lire, parcourir jusqu'au premier enregistrement à prendre... Si la table est correctement indexée, ça ne posera pas de problème particulier... Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
|
jeudi 16 octobre 2008 à 17:22:33 |
Re : Pagination d'une requête 109 ligne sur pages de 20 lignes

Ordinastie
|
Bonjour,
Tu n'es pas obligé d'éxécuter plusieurs fois ta requête. Regarde du coté de la fonction FOUND_ROWS() ( [ Lien ])
Ordinastie.
|
|
|
mercredi 19 novembre 2008 à 18:14:23 |
Re : Pagination d'une requête 109 ligne sur pages de 20 lignes
|
Cette discussion est classé dans : page, pages, lignes, requête, pagination
Répondre à ce message
Sujets en rapport avec ce message
Page multiples dans résultats MySQL [ par pyranhaz ]
Bonjour,Existe-il une astuce simple pour que lorsque je fais une requête MySQL sur mon site on m'affiche les pages contenant au maximum 25 résultats p
Pagination avec nombre de pages [ par sebalex ]
Salut à tous,Voilà, j'ai une liste résultant d'une recherche. Cette liste se limite à 5 résultats par page. A présent, je souhaite faire comme la plup
affichage requête SQL dans pseudo frame php [ par titsuisse ]
Bonjour, J'ai une petite question. J'ai construit mon site en le divisant comme un tableau. Au centre de ce tableau se trouve une page avec un includ
Impression page avec entete sur chaque page [ par stpa ]
Bonjour,J'ai une page php formatée pour etre impriméé avec une entete (table html + image + donnees sql). Cette entete s'imprime bien en début de page
Grouper les images par 25 dans une galerie [ par Evangun ]
Bonsoir à tous ! Il y a bcp de scripts parfaits pour faire des galeries d'images mais à chaque fois ils sont trop compliqués et je n'arrive pas à comp
Affichage d'une requête sur plusieurs pages [ par greg62300 ]
Salut, Voici ce que je souhaite faire : J'ai un formulaire composé de 3 listes déroulante : Le but étant de faire grâce à ce formulaire une requete pe
PB lien sur pages apres requete SQl!!! [ par LaTatadu91 ]
salut,voila j'ai un script qui récupére l'ensemble d'une base de donnée et je cherche a l'afficher dans un tableau avec une limite par page et je cré
Visiteurs pouvant modifier les pages [ par jlm58 ]
je souhaite que certains visiteurs de mon site puissent modifier ou ajouter du texte sur une page que j'ai préparée soit en tapant directement le text
Actualisation d'une page et empeche l'execution d'une requête [ par Mickko ]
j'aurai voulu savoir comment empecher lors du raffraichissment d'une page l'insertion dans la base de données. En effet, je remplie un formulaire et
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|