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
×