Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-08-2010 16:35:46

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Comportement étrange

Bonjour,

J'ai le code zf suivant :

Code:

$sql = $tbParclogementProprietaires
  ->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  ->setIntegrityCheck(false)
  ->joinLeftUsing('eq_parclogement__logements',    'pr_id')
;
$listeProprietaires = $tbParclogementProprietaires->fetchAll($sql);

Ceci me renvoi ma liste de propriétaires, par contre si un propriétaire n'a pas de logements, j'obtiens mon pr_id à null au lieu d'avoir le contenu de ma clé primaire.

En revanche, si j'exécute directement la requête :

Code:

SELECT `eq_parclogement__proprietaires`.*, `eq_parclogement__logements`.* FROM `eq_parclogement__proprietaires` LEFT JOIN `eq_parclogement__logements` ON `eq_parclogement__logements`.pr_id = `eq_parclogement__proprietaires`.pr_id

Qui est le résultat d'un echo $sql; j'obtiens les mêmes infos, sauf que mon pr_id est cette fois bien rempli.

A quoi peut être du cette bizarerie ? Peut-être un p'tit bug de Zend_db non ?

Merci

Geoffrey

Dernière modification par Geoffrey (27-08-2010 16:42:07)

Hors ligne

 

#2 02-09-2010 16:46:37

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: Comportement étrange

Bonjour,

J'ai réussi à contourner mon problème en désignant les champs que je voulais récupérer dans ma table jointe pour faire en sorte que mon script fonctionne, mais ce n'est pas génial.
Si un jour je modifie la table, il faut que je passe à cette jointure qui traine.

Mon script fonctionne donc, mais je n'ai toujours pas d'explications à ce comportement.

Une idée ?

Geoffrey

Hors ligne

 

#3 02-09-2010 18:58:53

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: Comportement étrange

Bonsoir,
Je pense que cela viens du fait des deux champs similaire dans tes tables (pr_id).
Je ne suis pas au top concernant les Db et je ne fais pas mes requêtes de cette manière...
Mais j'ai eu ce soucis que j'ai solutionner comme ça :

Code:

...
->from('proprio'=>'eq_parclogement__proprietaires')
->leftJoin(array('log'=>'eq_parclogement__logements','proprio.pr_id = log.pr_id',array('propiro'=>'pr_id', ....))
...

pour que les champs aient des noms différents?
Ça à fonctionné pour moi mais je ne suis pas sûr que ce soit LA solution


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

Hors ligne

 

#4 03-09-2010 11:58:32

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: Comportement étrange

Bonjour,

J'ai effectivement essayé cette solution là, mais j'ai le même problème. Il est vrai que je nomme toujours mes clés primaires et mes clés étrangères de la même manière, mais c'est la première fois que je constate cela.
C'est quand même très gênant, d'autant plus que MySQL me retourne la bonne information, c'est fetchAll de Zend_Db qui me casse tout.

Geoffrey

Dernière modification par Geoffrey (03-09-2010 11:58:52)

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