Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-01-2010 22:17:30

shivato
Nouveau membre
Date d'inscription: 14-01-2010
Messages: 7

Résolu [Zend_Db & Zend_Paginator] Problème affichage requête union

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 :

Code:

$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 :

Code:

$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) :

Code:

$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

 

#2 15-01-2010 17:44:31

shivato
Nouveau membre
Date d'inscription: 14-01-2010
Messages: 7

Re: Résolu [Zend_Db & Zend_Paginator] Problème affichage requête union

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 :

Code:

$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

 

#3 15-01-2010 18:43:43

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Résolu [Zend_Db & Zend_Paginator] Problème affichage requête union

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


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages