|
blog actif depuis 774 jours.
retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
Lun. 08 Juin Quand vous affichez une liste très grande de résultats, il est préférable de paginer, c'est à dire de découper cette liste sur plusieurs pages.Voici une astuce pour récupérer le nombre total de résultats d'une requête, nécessaire ici pour savoir combien de pages afficher. Prenons par exemple, la requête
SELECT * FROM ma_table;qui retourne 150 résultats. On décide d'afficher ces résultats sur 5 pages de 30 résultats. On va donc optimiser la requête pour ne sélectionner que les résultats correspondant à la page à afficher : par exemple, pour la première page : SELECT * FROM ma_table LIMIT 30;Le souci est que le nombre de résultats retourné est non plus 150 mais 30. On pourrait refaire un SELECT COUNT(*) FROM ma_table;mais cette solution force à ré-exécuter une requête et n'est pas très élégante. Il existe une méthode simple pour récupérer le nombre total de résultats : on ajoute SQL_CALC_FOUND_ROWS au SELECT : SELECT SQL_CALC_FOUND_ROWS * FROM ma_table LIMIT 30;Cette requete retourne bien les 30 premiers résultats. On récupère ensuite le nombre de résultats total avec: SELECT FOUND_ROWS();
Commentaires
Ajouter un commentaire |
Webmaster depuis maintenant plus de 10 ans, j'ai créé ce blog pour publier mes retours d'expérience et parler du Web et du développement Web en général, mais aussi de plein d'autres choses...
romualb.com est sur Facebook
![]()
![]()
![]()
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Merci pour cette info très utile pour la pagination de nos pages, un grand merci.
09/07/2009