Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-09-2009 23:44:36

h2h2
Membre
Date d'inscription: 20-09-2009
Messages: 11

[Résolu]Comment faire une jointure ?

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  smile

EDIT admin: merci de mettre un titre clair !

Dernière modification par h2h2 (23-09-2009 17:36:52)

Hors ligne

 

#2 21-09-2009 18:31:32

h2h2
Membre
Date d'inscription: 20-09-2009
Messages: 11

Re: [Résolu]Comment faire une jointure ?

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

 

#3 22-09-2009 07:24:18

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: [Résolu]Comment faire une jointure ?

Code:

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

Code:

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)


A+ Guelo Super Star

Hors ligne

 

#4 22-09-2009 10:27:44

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu]Comment faire une jointure ?

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

 

#5 23-09-2009 17:35:52

h2h2
Membre
Date d'inscription: 20-09-2009
Messages: 11

Re: [Résolu]Comment faire une jointure ?

Merci, jointure résolue

Dernière modification par h2h2 (23-09-2009 17:36:23)

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