Problème affichage avec methode GET [Résolu]

Debideb9445 41 Messages postés lundi 22 novembre 2010Date d'inscription 3 juillet 2017 Dernière intervention - 24 nov. 2015 à 11:35 - Dernière réponse : Debideb9445 41 Messages postés lundi 22 novembre 2010Date d'inscription 3 juillet 2017 Dernière intervention
- 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
Afficher la suite 

2 réponses

Répondre au sujet
jordane45 19324 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 décembre 2017 Dernière intervention - 24 nov. 2015 à 12:20
0
Utile
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>





Commenter la réponse de jordane45
Debideb9445 41 Messages postés lundi 22 novembre 2010Date d'inscription 3 juillet 2017 Dernière intervention - 24 nov. 2015 à 13:35
0
Utile
Parfait ! Ça marche niquel !

Merci beaucoup !
Commenter la réponse de Debideb9445

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.