17.8.1.10 Compter le nombre de résultats
Le nombre de résultats peut être obtenu avec la méthode
DocSearch::count()
après avoir effectué la recherche (appel
DocSearch::search()
).
$s = new SearchDoc('', 'ANIMAL'); $s->addGeneralFilter("cheval noir"); $s->setObjectReturn(); $s->search(); $c=$s->count(); // retourne le nombre de résultat
Si seul le nombre vous intéresse, la méthode DocSearch::count()
n'est
pas la plus performante car la requête est lancée et l'ensemble des résultats
est récupéré. Pour des performances accrues, il faut utiliser la méthode
SearchDoc::onlyCount()
. Ceci effectue la recherche en ne
retournant que le nombre de documents correspondants.
$s = new SearchDoc('', 'ANIMAL'); $s->addGeneralFilter("cheval noir"); $s->setObjectReturn(); // pas d'appel à Doc::Search $c=$s->onlyCount();// retourne le nombre de résultat
Attention, le premier appel à une des méthodes
DocSearch::search()
ou SearchDoc::onlyCount()
lance une requête au serveur de base de données. Le résultat est mis en cache
pour être exploité par les itérateurs.
$s = new SearchDoc('', 'ANIMAL'); $s->addGeneralFilter("cheval noir"); $s->setObjectReturn(); // pas d'appel à Doc::Search $c=$s->onlyCount();// retourne le nombre de résultat $s->addFilter("cdate > '%s'", date("Y-m-d")); // ajoute un critère $s->search(); // relance le recherche