|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : novembre 2002 Messages : 14 ![]() |
Bonjour à tous!
Pour un projet de listing de livres, je suis passé de Doctrine à Zend_Db pour la gestion de la base de données. J'ai probablement pris pleins d'habitudes bonnes et moins bonnes avec Doctrine, mais là, je sèche méchamment sur un point. J'ai une requête comme ceci (en gros): Code :
J'ai donc tenté un truc tout bête: Code :
Certes, je pourrais réécrire toute la requête en changeant le select et en ne mettant pas la limit, mais je me demandais si on pouvait trafiquer un select pour faire un count "intelligent". Merci d'avance pour vos éclaircissements ou vos conseils! rekam |
||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
pour obtenir un nombre de lignes autant utiliser les fonctions d'agrégations de SQL. Pour cela, il suffit de construire le select sans clause LIMIT, de le dupliquer, et de remplacer dans la copie la liste des champs par un COUNT(*). Tu peux ensuite ajouter le LIMIT à la requête d'origine pour obtenir ton jeu d'enregistrements. Ce qui donne: Code :
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
||
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
On peut également utiliser l'option SQL_CALC_FOUND_ROWS.
Plus d'infos ici : http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
En dehors du fait qu'il s'agit d'une extension à SQL spécifique à MySQL, je me demande si la syntaxe des requêtes utilisant cette fonction est compatible avec Zend_Db_Select... De plus, il faut lancer derrière un SELECT FOUND_ROWS(); pour obtenir le total de lignes. C'est peut-être un plus performant en terme de requête, mais le code PHP reste sensiblement le même.
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com