Je suis toujours avec mon site internet de gestion de film.
Pour rappel : mon site consiste à répertorier les films que j'ai vu et ceux que je n'ai pas vu.
Jusqu'ici, j'ai réussi à tout faire (notamment grâce à une certaine aide des internautes de ce site). Il me manque plus qu'une dernière chose !
Voilà le topo :
J'ai une base de données avec une table "film" avec à l'intérieur les champs "id_film" et "film_name" (+ d'autres champs mais j'en ai pas besoin dans l'immédiat)
J'ai une seconde table "film_user" avec à l'intérieur les champs : "id_film", "id_user" et "check-film"
"check_film" peut prendre la valeur 1 (=film vu) ou 2(=film déjà vu).
Voici un exemple de ma table "film_user" après qu'un utilisateur est inscrit les films qu'il a vu et souhaite voir :
Comme vous pouvez le remarquer, cet utilisateur à vu 2 films et veux en voir 1 .
Mon problème consiste à intégrer ces données dans un tableau.
Pour ce faire j'ai créé un fichier Vos_films. Ce fichier va me permettre d'afficher le tableau avec les films à voir dans une colonne et les films déjà vus dans une autre colonne.
<?php if( $id_user ){ $sql1 = "SELECT id_film FROM film_user WHERE id_user='$id_user' AND check_film='1' "; $id_film = $bdd->query($sql1); $sql2 = "SELECT film_name FROM film WHERE id_film='$id_film'"; $film_name = $bdd->query($sql2);
} while ($donnees = $film_name->fetch()) { echo $donnees['film_name']; } ?>
<td><h2>Films à voir :</h2><td>
<?php if( $id_film ){ $sql3 = "SELECT id_film FROM film_user WHERE id_user='$id_user' AND check_film='2' "; $id_film = $bdd->query($sql3); $sql4 = "SELECT film_name FROM film WHERE id_film='$id_film'"; $film_name = $bdd->query($sql4);
J'ai du nouveau . J'ai une erreur qui me dit :
Catchable fatal error: Object of class PDOStatement could not be converted to string in D:\wamp\www\Projet5.0\Vos_films.php on line 29 Qu'est ce que cela signifie ? Je comprends qu'un'objet de classe ne peut pas être converti en entier mais pas plus que ça...
Tu regardes ton code ligne 29 ... puis tu regardes ligne 28.... et tu devrais comprendre !
$id_film = $bdd->query($sql1);
$sql2 = "SELECT film_name FROM film WHERE id_film='$id_film'";
...Selon toi .... que vaut $id_film ?
N'aurais tu pas oublié de faire un fetch ?
Et puis.. je suppose qu'il n'y en a pas qu'un (de film) ....
Donc il aurait fallu une boucle !
Mais bon.. je pense que la meilleur solution serait de ne faire qu'une seule requête via une JOINTURE
Ces deux requêtes :
$sql1 = "SELECT id_film FROM film_user WHERE id_user='$id_user' AND check_film='1' ";
$sql2 = "SELECT film_name FROM film WHERE id_film='$id_film'";
Peuvent se résumer en :
$sql1 = "SELECT id_film
FROM film_user FU
LEFT JOIN film F ON F.id_film = FU.id_film
WHERE id_user='$id_user'
AND check_film='1' ";
$donnees = $bdd->query($sql1);
//le temps des tests, pour voir ce que retourne ta requête :
while ($row = $donnees ->fetch()) {
echo "<br>";
print_r($row);
}
Tu peux :
1 - Tester la requête en direct dans ta BDD et nous dire ce qu'elle retourne ?
2 - Nous fournir un dump de tes tables (structures + données ) ?
25 nov. 2015 à 19:07
Evite, autant que possible, de mettre des balises PHP partout....
Ceci :
Peut (et je te le conseille...) être écrit :
Modifié par Debideb9445 le 25/11/2015 à 19:23
Du coup après correction voilà mon code :
J'ai changé le problème de variable. J'ai aussi viré les conditions if($id_film) car j'avais le sentiment car ça ne servait à rien...
Du coup, j'ai plus d'erreur à l'écran mais je n'ai toujours pas les données affichées.
25 nov. 2015 à 19:33
Catchable fatal error: Object of class PDOStatement could not be converted to string in D:\wamp\www\Projet5.0\Vos_films.php on line 29
Qu'est ce que cela signifie ? Je comprends qu'un'objet de classe ne peut pas être converti en entier mais pas plus que ça...
25 nov. 2015 à 21:10
...Selon toi .... que vaut $id_film ?
N'aurais tu pas oublié de faire un fetch ?
Et puis.. je suppose qu'il n'y en a pas qu'un (de film) ....
Donc il aurait fallu une boucle !
Mais bon.. je pense que la meilleur solution serait de ne faire qu'une seule requête via une JOINTURE
Ces deux requêtes :
Peuvent se résumer en :
25 nov. 2015 à 22:04