Problème affichage avec methode GET

Résolu
Debideb9445
Messages postés
41
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
3 juillet 2017
- 24 nov. 2015 à 11:35
Debideb9445
Messages postés
41
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
3 juillet 2017
- 24 nov. 2015 à 13:35
Bonjour,

Je dois réaliser un site internet en projet de techno Web utilisant seulement (Html,CSS,PHP et mySQL). J'ai choisi de réaliser un site qui référencie les films que j'ai vu, que je voudrais voir à l'avenir et ceux que mes amis me conseillent (gestion d'amis donc...).

Bref, c'est mon premier site internet que je code et je suis vraiment pas très bon :/ .

Mon soucis est vraiment basique. J'ai créer une base de données nommée "movie" dans laquelle j'ai référencé 6 films dans une table film. Du coup je me retrouve logiquement avec 6 id_film.


Lorsque l'utilisateur est sur la page d'accueil de mon site, il a la possibilité de cliquer sur l'affiche d'un film pour avoir plus de détails. Du coup, j'ai mis une href tout basique comme ceci
<a href="Films.php?id_film=3">


Lorsqu'il clique, il est envoyer sur mon Films.php dont voici le code :


<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=movie;charset=utf8', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout

die('Erreur : '.$e->getMessage());
}
?>
<?php include("Mise_en_page.php"); ?>
<head>
<title>Gerer mes films</title>
<link rel="stylesheet" href="css/Accueil.css" />

</head>

<?php
if (isset($_GET["id_film=1"])) {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=1'); }


else if (isset($_GET["id_film=2"])) {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=2'); }

else if (isset($_GET["id_film=3"])) {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=3'); }

else if (isset($_GET["id_film=4"])) {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=4'); }

else if (isset($_GET["id_film=5"])) {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=5'); }

else {

$reponse = $bdd->query('SELECT * FROM film WHERE id_film=6'); }
?>

<?php while ($donnees = $reponse->fetch()) { ?>
<body>
<img src=<?php echo $donnees['url_logo'];?> border="0" alt="OSS" /><br />

<input id="buy" type="button" value="A voir"><input id="buy" type="button" value="Deja vu">


<p> <h3>Titre: </h3> <?php echo $donnees['film_name']; ?></p>
<p> <h3>Realisateur: </h3><?php echo $donnees['realisateur']; ?></p>
<p> <h3>Date de sortie: </h3><?php echo $donnees['date_sortie']; ?></p>
<p> <h3>Genre: </h3><?php echo $donnees['genre']; ?></p>
<p> <h3>Duree: </h3><?php echo $donnees['duree']; ?></p>
<p> <h3>Nationalite: </h3><?php echo $donnees['nationalite']; ?></p>
<p> <h3>Synopsis: </h3><?php echo $donnees['description']; ?> </p>


<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
?>
<br>
<br>
<br>
<br>


</body>
</html>


J'ai donc utiliser une méthode GET qui va lire la variable de mon URL et en fonction de l'id du film, affiche le film que l'ont veut.

Le problème, c'est que ça n'affiche rien. J'ai mon header et mon footer qui viennent de ma mise en page mais mis à part ça c'est une page blanche.

Pouvez-vous m'aider à me dire où est le problème ?

Cordialement

2 réponses

jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
24 nov. 2015 à 12:20
Bonjour,

Attention aux comparaisons ... elles se font :
- En dehors des guillemets
- Avec un Double ou un Triple EGAL

De plus, il est préférable de récupérer les variables AVANT de les utiliser.


Donc :
if (isset($_GET["id_film=1"])) {



$id_film = !empty($_GET["id_film"]) ? $_GET["id_film"] : NULL;

if( $id_film == 1 ){
 // ...
}



Tu n'as pas besoin non plus de faire un QUERY par ID de film ....(vu que l'id en question est dans ta variable GET .. donc .. tous tes IF peuvent se résumer en :

$id_film = !empty($_GET["id_film"]) ? $_GET["id_film"] : NULL;

//Si il y a un ID FILM :
if( $id_film ){
  $sql = "SELECT * FROM film WHERE id_film='$id_film' ";
  $reponse = $bdd->query($sql); }

}



Pour finir ...
Place le code de connexion à ta BDD dans un fichier à part que tu n'auras plus qu'à inclure dans tes pages plutot que de le recopier à chaque fois.

<?php
//Fichier connexion.php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=movie;charset=utf8', 'root', '');
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}
?>


Ce qui, une fois tout ton code remis en forme correctement donnera :


<html>
<head>
    <title>Gerer mes films</title>
    <link rel="stylesheet" href="css/Accueil.css" />

</head>
<body>
<?php
//Connexion à la BDD
require_once "connexion.php";

//Récupération des variables
$id_film = !empty($_GET["id_film"]) ? $_GET["id_film"] : NULL;


//Si il y a un ID FILM :
if( $id_film ){
  $sql = "SELECT * FROM film WHERE id_film='$id_film' ";
  $reponse = $bdd->query($sql); }

}
while ($donnees = $reponse->fetch()) { 

?>
<img src=<?php echo $donnees['url_logo'];?> border="0" alt="OSS" /><br />
					
<input id="buy" type="button" value="A voir"><input id="buy" type="button" value="Deja vu">

<p> <h3>Titre: </h3> <?php echo $donnees['film_name']; ?></p>
<p> <h3>Realisateur: </h3><?php echo $donnees['realisateur']; ?></p>
<p> <h3>Date de sortie: </h3><?php echo $donnees['date_sortie']; ?></p>
<p> <h3>Genre: </h3><?php echo $donnees['genre']; ?></p>
<p> <h3>Duree: </h3><?php echo $donnees['duree']; ?></p>
<p> <h3>Nationalite: </h3><?php echo $donnees['nationalite']; ?></p>
<p> <h3>Synopsis: </h3><?php echo $donnees['description']; ?> </p>


<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
?>
<br>
<br>
<br>
<br>


</body>
</html>





0
Debideb9445
Messages postés
41
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
3 juillet 2017

24 nov. 2015 à 13:35
Parfait ! Ça marche niquel !

Merci beaucoup !
0