Bonjour à tous,
Je développe en ce moment un petit forum de discussion très simplifié. Celui-ci s'appuie sur 5 tables MYSQL : "membre", "message", "reponse", "effectue" et "renvoie". Sur le site, il y a donc une page affichant les derniers sujets postés. Pour chaque sujets, j'aurais aimé afficher le titre du sujet, la date et l'heure à laquelle il a été posté et enfin le nom du membre qui a posté ce sujet.
Pour le titre, la date et l'heure, une fois la requête effectuée je n'ai aucun problème pour afficher les infos qui m'intéressent sur la page (celles-ci se trouvant sur la table message). Pour récupérer le nom de l'émetteur du message, je suis obligé d'effectuer une seconde requête: grâce à la clé étrangère "idMembre" liant le membre au message.
Dès que j'essaye d'afficher le contenu de la variable $membre (qui normalement doit être un tableau associatif contenant tous les champs de la table "membre" correspondant au membre concerné par la clause WHERE de la requête), j'obtiens le message d'erreur suivant: Fatal error: Cannot use object of type PDOStatement as array in fichier.php on line 72.
Voici le bout de code concerné:
Voilà, je ne comprend pas pourquoi la première requête fonctionne parfaitement et pourquoi la seconde retourne à priori un objet de type PDOStatement totalement inexploitable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <DIV Id="sujets"> <H2>Derniers sujets postés :</H2> <HR /> <?PHP $sujets = $bdd->query('SELECT * FROM message ORDER BY dateMessage DESC LIMIT 0, 20;'); $empty = true; foreach ($sujets as $message) { if ($empty) {$empty = false;} ?> <DIV Class="sujetMessage"> <?PHP $membre = $bdd->query('SELECT * FROM membre WHERE membre.idMembre=' . $message['idMembre'] . ';'); echo ('<H2><A Href="#">' . $message['sujet'] . '</A></H2> posté le ' . $message['dateMessage'] . ' par ' . $membre['prenom']); // ligne 72... La variable $membre['prenom'] pose problème. ?> </DIV> <?PHP } if ($empty) { echo('<H2>Aucun sujet trouvé...</H2>'); } ?> </DIV>
Merci à ceux qui pourront me venir en aide.
Cordialement.
Partager