Paging MySql
Pour gérer le paging en PHP/MySql on a tendance à refaire une requête de count sans la limite après la récupération de ses lignes.
MySql inclut (depuis la version 4.0) une fonction qui permet de combiner ces 2 requêtes afin de ne faire qu’une seule fois le calcul :
Il suffit d’ajouter la fonction SQL_CALC_FOUND_ROWS à la première requête, ce qui va avoir pour effet de ne pas arrêter la requête après la LIMIT et ainsi de pouvoir récupérer via la commande FOUND_ROWS() le nombre de ligne qu’aurait eu cette requête sans la LIMIT.
Exemple :
1 2 3 | mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS(); |
En espérant que ça puisse vous servir ;)
Julien