Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je débute sur ZF et je ne sais pas ou me tourner pour résoudre un problème qui va paraitre pourtant simple je pense.
J'ai 2 tables
poste
=>id_poste
=>nom
et
membres
=>poste(il s'agit d'un id)
=>prénom
Comment à l'aide d'une requête, récupérer "nom" si "poste" et "id_poste" sont les même ?
Merci pour toute aide, liens externes me permettant de réaliser ceci
EDIT admin: merci de mettre un titre clair !
Dernière modification par h2h2 (23-09-2009 17:36:52)
Hors ligne
J'ai testé ceci
$select = $poste->select();
$select->setIntegrityCheck(false)
->from('membres')
->join('poste', 'poste.id_poste = membres.poste')
->where('poste.id_poste = ?', ' membres.poste');
$this->view->poste = $poste->fetchAll($select);
Mais je ne sais pas comment récupérer les informations (membres.poste et le nom)(cela dit le code ne marche peut être pas non plus)
Zend me déprime.
Dernière modification par h2h2 (21-09-2009 18:32:24)
Hors ligne
$select= $poste->select() ->from(array('mb' => membres')) ->joinInner(array('p' => 'poste'),"mb.poste = p.id_poste") $row = $poste->fetchAll($select); $this->view->poste = $row;
Et dans ta vue :
foreach ($this->poste as $membre) { //Si $membre est un objet $membre->poste; $membre->prenom; $membre->nom; //si objet est un tableau assoc $membre['poste']; $membre['prenom']; $membre['nom']; }
il y a peux être des erreurs d'écriture mais dans la logique sa doit être sa.
J'espère avoir pu t'aider
Bon code.....
Dernière modification par GueloSuperStar (22-09-2009 07:25:10)
Hors ligne
Cf chapitre : 15.4.3.5 de la doc
http://framework.zend.com/manual/fr/zend.db.select.html
z-f a écrit:
#
INNER JOIN avec les méthodes join(table, jointure, [colonnes]) ou joinInner(table, jointure, [colonnes]).
Ceci est le type de jointure le plus commun. Les lignes de chaque table sont comparées en utilisant la condition join spécifiée. Le résultat inclut seulement les lignes qui vérifient la condition join. Le résultat peut être vide si aucune ligne ne satisfait la condition.
Tous les marques de SGBDR supportent ce type de jointure.
les méthodes join prennent 3 arguments Table condition de jointure et Colonnes il te suffit donc de mettre un tableau contenant la liste des colonnes que tu veux voir remontée pour la table jointe
A+JYT
Hors ligne
Merci, jointure résolue
Dernière modification par h2h2 (23-09-2009 17:36:23)
Hors ligne