Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai le code zf suivant :
$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 :
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
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
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 :
... ->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
Hors ligne
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