requete sur plusieurs tables : suite

Eléphanteau du PHP | 33 Messages

03 juil. 2018, 17:20

Bonjour
J'ai déjà posé ma question. Sans réponse, j'ai cherché et j'ai trouvé une syntaxe que je ne connaissais pas.
Je remets donc mon code modifié, qui reste sans réaction, ni affichage d'erreur.
Il s'agit de faire une requête sur trois tables :
celle des membres (mpmmembres) qui contient idmembre, pseudo,
celle des événements auxquels ils s'inscrivent (mpmevenement), qui contient ideve, nomeve, dateeve
et une table de relation (relmembreeve) qui contient ideve et idmembre.

Code : Tout sélectionner

<h2>Vous êtes inscrit.e à :</h2> <table > <tr > <th>Date</th><th>Evenement</th> </tr> <?php $req=$bdd->prepare('SELECT * FROM ((mpmmembres m INNER JOIN relmembreeve r ON r.idmembre=m.idmembre ) INNER JOIN mpmevenement e ON e.ideve=r.ideve ) WHERE pseudo=:pseudo '); $req->execute(array('pseudo'=>$pseudo)); while ($aaa=$req->fetch()) { echo ("<tr><td>".$aaa['dateeve']."</td><td>".$aaa['nomeve']."</td>"); }
Qui peut m'aider ? Merci !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 juil. 2018, 20:33

Bonjour phibad,

Si tu n'as pas eu de réponse, c'est pour plusieurs raisons :
- Tu as un problème qui n'est pas un souci de PHP mais de SQL donc tu devrais poser ta question dans le forum approprié pour espérer avoir un expert SQL qui puisse regarder : sql-bases-donnees/

- Par ailleurs, tu effectues une requête complexe avec une double jointure ce qui n'est pas à la portée de tout le monde, il faut que tu construises ta requête progressivement et que tu la teste dans phpmyadmin jusqu'à arriver au fonctionnement voulu.
Une fois qu'elle fonctionnera, tu pourras l'insérer dans du code PHP puis la rendre dynamique en ajoutant des variables.

- Et enfin, c'est quasiment impossible de debuguer du SQL sans avoir les tables et les données.
Donc il faut déjà que tu avances dans ton debugage : qu'est-ce qui bloque ? A quel niveau de la requête ? Qu'as-tu essayé ? Quels sont les messages d'erreur ?
Là dans ton code, tu ne regardes même pas si il y a eu une erreur lors de l'exécution de la requête ! Comment veux-tu débuguer quoi que ce soit ?
http://php.net/manual/fr/pdostatement.errorinfo.php
Quand tout le reste a échoué, lisez le mode d'emploi...