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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
$table = new Livres();
$select = $table->select()->joinLeft(...)->order(...)
    ->where('un filtre utilisateur')
    ->where('un autre filtre utilisateur')
    ->where('etc...')
    ->limit(10, 20);
 
$rowset = $table->fetchAll($select);
Ceci fonctionne à merveille. Tout est très bien, c'est très bien. Maintenant, je souhaite retrouver le total (là je n'ai que 10 éléments).

J'ai donc tenté un truc tout bête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
// juste en dessous:
        $select
            ->reset(Zend_Db_Select::LIMIT_COUNT)
            ->reset(Zend_Db_Select::LIMIT_OFFSET);
 
        $rows = $table->fetchAll($select);
        echo $rows->count();
Et c'est là que rien ne va plus. ça me retourne 4x tous les résultats. Je n'ai aucune idée pourquoi.

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