J'ai besoin d'afficher plusieurs pages de nouvelles dans un site.
Dois-je faire la pagination dans la requête db en utilisant la limite ou le faire dans mon script php après avoir obtenu tous les résultats?Quelle est la meilleure façon de paginer les résultats en php
Répondre
Limite d'utilisation dans SQL! À chaque fois! Sinon, vous générez beaucoup plus de données que nécessaire, ce qui rend vos scripts inutilement lents et entraîne des problèmes d'évolutivité à mesure que la quantité de données augmente dans vos tables.
La limite est votre ami!
Limite d'utilisation - vous ne souhaitez pas transférer des masses de données de la base de données vers le moteur de script si vous pouvez l'éviter.
Personnellement, j'utiliserais la requête pour le faire. Évidemment, cela peut changer si vous traitez avec AJAX et autres, mais simplement faire une limite de base dans la requête et sortir les résultats est simple et efficace.
Si vous voulez uniquement travailler avec un SGBD supportant cela que de le faire sur le SGBD. Si vous souhaitez prendre en charge d'autres SGBD dans le futur, ajoutez une couche entre ceux-ci, en fonction du SGBD actuel.
Vous pouvez utiliser des bibliothèques existantes pour vous aider:
Pear :: Pager peut aider à la sortie, et de limiter le trafic de base de données que ce dont vous avez besoin, vous pouvez utiliser un emballage fourni dans les exemples viens avec.
Voici un tutorial je viens de googlé qui a tout ...
En plus d'utiliser LIMIT
, je suggère d'utiliser une clause explicite WHERE
pour définir l'offset, et commander les résultats sur cette colonne. Par exemple:
--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50
Ceci limite en outre le nombre de lignes renvoyées à celles situées dans la plage souhaitée. L'utilisation de l'approche WHERE
(par opposition à une clause LIMIT
avec un décalage séparé, par exemple LIMIT 50,50
) vous permet de traiter efficacement les appels de radiomessagerie à travers d'autres clés naturelles, par ex. alphabétiquement par nom, ou par ordre de date.
- 1. En C#, quelle est la meilleure façon d'enchaîner les constructeurs?
- 2. Quelle est la meilleure façon d'utiliser l'API Twitter via PHP?
- 3. Quelle est la meilleure façon de lire les données CSV?
- 4. Quelle est la meilleure façon de tester les services WCF?
- 5. Quelle est la meilleure façon de créer des vignettes à partir de la vidéo en PHP?
- 6. Quelle est la meilleure façon de gérer les exceptions ObjectDataSource?
- 7. Quelle est la meilleure façon de normaliser le "temps" en PHP?
- 8. Quelle est la meilleure façon de mettre en cache des fichiers en php?
- 9. quelle est la meilleure façon de php pour inverser les lettres dans les mots
- 10. Meilleure façon d'authentifier en PHP
- 11. Quelle est la meilleure façon d'optimiser cette requête MySQL?
- 12. Quelle est la meilleure façon de stocker des variables de classe en PHP?
- 13. Quelle est la meilleure façon d'examiner les fichiers access.log d'apache?
- 14. Quelle est la meilleure façon d'enregistrer un RichTextFile en C#?
- 15. Quelle est la meilleure façon d'effacer l'écran en Perl?
- 16. Quelle est la meilleure façon d'écrire [0..100] en C#?
- 17. Quelle est la meilleure façon d'obtenir des résultats agrégés à partir de NHibernate?
- 18. Quelle est la meilleure façon de conserver les paramètres d'application PHP?
- 19. Quelle est la meilleure façon de gunzip fichiers avec Perl?
- 20. Quelle est la meilleure façon de commencer avec NHibernate?
- 21. quelle est la meilleure façon de marquer un texte?
- 22. Quelle est la meilleure façon de déboguer un Oracle SP?
- 23. Quelle est la meilleure façon de créer des déploiements ClickOnce
- 24. Quelle est la meilleure façon de vérifier un ListView pour les éléments cochés en C#?
- 25. Quelle est la meilleure façon d'implémenter cette requête SQL?
- 26. Quelle est la meilleure façon de diviser deux objets TimeSpan?
- 27. Quelle est la meilleure façon de lire GetResponseStream()?
- 28. Quelle est la meilleure façon de chiffrer un clob?
- 29. Quelle est la meilleure façon d'automatiser le remplacement de texte?
- 30. Quelle est la meilleure façon de trouver l'inverse de datetime.isocalendar()?