blog actif depuis 632 jours.

retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster

 

Mon

08

Jun

 
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();

Bookmark and Share

 

Commentaires

Merci pour cette info très utile pour la pagination de nos pages, un grand merci.

09/07/2009

 

Ajouter un commentaire

nom / pseudo :
e-mail :

(Votre e-mail ne sera ni exploité, ni divulgué.)

site (facultatif)
 

Webmaster depuis maintenant presque 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...

<Mars 2010 
LunMarMerJeuVenSamDim
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31     

 

 

 

Referencement annuaire gratuit Annuaire carte postale blog,,personnel communiquer gratuit Paperblog : Les meilleurs actualités issues des blogs Classement de sites - Inscrivez le vôtre! Inscrivez-vous maintenant sur Viadeo Web Developement Blogs - BlogCatalog Blog Directory web counter