Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
C'est mon premier post ici et je débute dans Zend. je n'est pas pour habitude de demander de l'aide mais là je ne trouve vraiment pas le problême.
Voila je fais une requête union :
$select1=$db->select()->....... $select2=$db->select()->....... $selectUnion=$db->select()->union(array($select1,$select2));
Quand j'affiche ma requête et que je la colle dans mySql il me ressort 19 résultats.
Je la passe à zend_paginator, je lui demande d'afficher 10 résultats par page :
$selectPage = Zend_Paginator::factory($selectUnion); $selectPage->setPageRange(9); $selectPage->setCurrentPageNumber($page); $selectPage->setItemCountPerPage(10);
Et le problème arrive à l'affichage, il ne m'affiche que 8 résultat pour la page 1 et 7 pour la page 2 (donc un total de 15 sur 19).
Avec une requête qui me ressort 26 résultats dans mySql, il m'affiche 10 résultats pour la page 1, 9 pour la page 2 et 6 pour la page 3 (donc un total de 25 sur 26).
J'ai cherché à savoir d'où vient le problème mais impossible de trouver ce qui est plus bizarre c'est que quand j'affiche dans ma vue de pagination cette ligne (pour ma requête qui doit me sortir 19 résultats) :
$this->currentItemCount." ".$this->itemCountPerPage." ".$this->totalItemCount;
il m'affiche "8 10 19", donc il sait qu'il doit m'afficher 10 résultat par page et que en tout il en a 19 mais il m'en affiche que 8 pour la première page.
Si quelqu'un peut m'aider ce serait vraiment sympa. Merci.
Dernière modification par shivato (15-01-2010 17:47:02)
Hors ligne
Bon apparemment c'est à cause de ->union qui ne met pas les parenthèses entre les 2 selects.
La solution la plus simple pour les ajouter est de faire comme ceci :
$db->select()->union(array('('.$select1.')','('.$select2.')'));
Source : http://framework.zend.com/issues/browse/ZF-7592
C'est incroyable que la méthode union ne le fasse, pour moi ça devrait être obligatoire de mettre les requêtes entre parenthèses.
Hors ligne
Hum... effectivement c'est surprenant que ça ne soit pas déjà corrigé. L'équipe du ZF a eu énormément de bugs à corriger sur Zend_Db, ils ont du considérer que ça n'était pas le plus critique...
Bref, j'ai voté pour le bug...
A+, Philippe
Hors ligne
Pages: 1