bonjour,
Je travail sur PHP/MySQL, je prends le temps d'examiner les jointures, ici c'est une jointure interne, de table en PHP,.
J"ai pris l'exemple d'un jeux video. Création de deux tables : jeux_video (50 champs) et proprietaires (4 champs).
J'ai testé ma requete sous MySql Workbench elle marche très bien.
Lors de l'execution du programme PHP, mon log m'indique que j'ai une erreur sur le "while" :
Je travail sous Linux Debian 8.8 et Kate comme éditeur de code sources.error: Call to a member function fetch() on boolean in /var/www/html/cours/jointure/joint_interne.php on line 34, referer: http://127.0.0.1/cours/jointure/
Je me demande comme je parcourt deux tables a la fois !
comment "while" renvoie le boolean de fin de champs?
Voici mon code PHP :
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
29
30
31
32
33
34 <?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=jeux_video;charset=utf8', 'root', 'toto'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // Récupération du billet $reponse = $bdd->query('SELECT j.nom nom_jeu, p.prenom prenom_proprietaire &_ FROM proprietaires p &_ INNER JOIN jeux_video j &_ ON j.ID_proprietaire = p.ID; '); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { echo '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <strong> Date/heure : '.stripslashes($donnees['p.ID']).'</strong> </tr> <tr> <strong> Ecrit par : '.stripslashes($donnees['j.nom']).'</strong> </tr> <tr> <strong> Message : '.(stripslashes($donnees['p.prenom'])).'<strong> </tr> </table><br />'; } $reponse->closeCursor();?>
Partager