PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 20-11-2013 14:38:56

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

fonctions avec inner join dont une partie génère plusieurs résultats

Bonjours à toutes et tous,

je vous contact car j'ai besoin d'une assistance concernant une fonction sur laquelle je me casse la tête.
en effet celle-ci fonctionne correctement mais je ne vois pas comment faire en sorte que cette même fonction puisse m'afficher les différents résultats provenant de la table etab_representatives.

Pour le reste je n'ai aucun soucis car une seule ligne par table..


public function infos_etab_pic($Pic)
{
 $pdo= DbConnexion::getInstance();

$sql = '
SELECT *
FROM etab
INNER JOIN etab_finances ON etab.id_Etab = etab_finances.id_Etab
INNER JOIN etab_representatives ON etab.id_Etab = etab_representatives.id_Etab
WHERE ETAB_pic='.$Pic;

$query = $pdo->prepare($sql);
$query->execute();
 
if($etab_info = $query->fetch(PDO::FETCH_ASSOC)){ return $etab_info;  }

$query->closeCursor();  
}
 

En effet si je fais appel à cette fonction:


$infos = $Etab->infos_etab_pic("9924");
echo  $infos['REPR_prenom'];
 

mon echo ne fera apparaître et c'est logique que le premier résultat

Pourriez vous m'indiquez comment je peux procéder?
merci par avance

Hors ligne

#2 20-11-2013 15:51:26

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : fonctions avec inner join dont une partie génère plusieurs résultats

Saluton, Darkangel,
En fait, dans la méthode de classe, le parcours du résultat de ta requête n'est qu'initialisé sur la première ligne

if($etab_info = $query->fetch(PDO::FETCH_ASSOC)){ return $etab_info;  }

Ça convient lorsqu'il n'y a qu'une ligne, mais il faudrait dans une boucle parcourir l'ensemble des lignes de la ressource et les charger dans $etab_info avant de les retourner.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 20-11-2013 15:57:56

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

Re : fonctions avec inner join dont une partie génère plusieurs résultats

Bonjour Maljuna,

merci pour ta réponse.
Je suis d'accord avec toi sur ta remarque.
Cependant, pour toutes les premières infos cela correspond parfaitement. Ça coince juste pour la table representatives.

Si je comprends bien, même si pour toutes les autres tables cela convient, il faut faire une boucle ?
tu peux m'éclairer un peu plus sur une telle mise en place?
Merci par avance

Hors ligne

Pied de page des forums