Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

équivalence de FOUND_ROWS en zend


Sujet :

Zend_Db PHP

  1. #1
    Membre régulier
    équivalence de FOUND_ROWS en zend
    bonjour tout le monde,

    je veux savoir l’équivalence de FOUND_ROWS en zend.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $select = $db->select()
                 ->from(array("c" => 'constat'))
    	     ->limitPage($numPage, $LongData);
     
    	$res = $db->fetchAll($select);
     
    ici ==> je veux récupérer le nombre total des lignes de la requête sans limitPage avec l’équivalence de  FOUND_ROWS  ou autre chose


    merci d'avance.

  2. #2
    Membre régulier
    Bonjour,
    as - tu essayé:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    $nb_total = count($res);

    ???

  3. #3
    Membre expérimenté
    Ce que tu donne comme solution prend le limit en compte ce n'est donc pas ça qu'il cherche, d'ailleurs je ne connais pas la fonction qu'il évoque

  4. #4
    Membre régulier
    Oups!

    c'est vrai je n'avais pas lu la suite de sa demande: "sans limitPage"

    Ben une façon de faire serait de faire une première requête qui fasse le calcul du nombre total de lignes:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = $db->select()->from(array("c" => 'constat'), 'count(*)');
    $numRows = $db->fetchOne($select);


    puis ta seconde requête pour sélectionner les éléments de ta table avec ton limitPage§

    Sinon moi non plus je ne connais pas cette fonction, c'est un moyen de détourner le problème que je propose ici!

    En espérant t'aider....

  5. #5
    Membre éprouvé
    Je remonte ce topic car j'ai eu le même souci et j'ai fini par y arriver, ça pourra aider ceux qui cherche désespérément la réponse sur Google

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $select = $this->select();
    $select->from(array('ips' => $this->_name), array(new Zend_Db_Expr('SQL_CALC_FOUND_ROWS start_date')));
    [...]
    if (isset($limitNb) && is_numeric($limitNb) && !empty($limitNb)) {
        if (isset($limitStart) && is_numeric($limitStart) && !empty($limitStart)) {
            $select->limit($limitNb, $limitStart);
        } else {
            $select->limit($limitNb);
        }
    }
     
    $this->_result = $this->fetchAll($select)->toArray();
     
    $selectNb = $this->getAdapter()->fetchAll('SELECT FOUND_ROWS()');
    $this->_nbResult = $selectNb[0]['FOUND_ROWS()'];


    Les boutons et existent, servez-vous en

  6. #6
    Membre expérimenté
    Merci pour se partage ça pourra servir en effet.

  7. #7
    Membre régulier
    Bonjour,

    Je confirme, ça a servi. MERCI !!!