Aide pour code php

Résolu/Fermé
Signaler
Messages postés
365
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 février 2017
-
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
-
bonjour,
je fait un site avec la liste des films et une fiche par films, dans ma page film A dont j'ai mit un code qui affiche ma liste de films A qui sont dans ma basse de donne, j'aimerai savoir comment faire pour que quand je clique sur un des films sa crée une autre page avec les donné du films (qui sont dans ma même basse de donne) sans que j'ai a faire une page par films
si sais possible

voici ma page "filma.php"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>VM Archive</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>

<body>

<?php include("entete.php"); ?>

<?php include("menus.php"); ?>

<div id="corps">
<h1>Films A</h1>
<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=vm_archive', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM films WHERE nom_du_film LIKE "A%" ORDER BY nom_du_film ');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<a href="nom_du_film.php"><?php echo $donnees['nom_du_film']; ?></a>
</p>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>

</div>

<?php include("pied_de_page.php"); ?>

</body>
</html>

7 réponses

Messages postés
18636
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 janvier 2022
4 353
Tu peux passer des données GET (dans l'url).
Par exemple, tes liens pointent vers ce style d'adresse /fiche.php?film_id=3
Ensuite, tu pourras utiliser la variable $_GET['film_id'] sur "fiche.php" pour faire ta requête SQL. Ta table doit bien évidemment comporter un champ contenant un id unique pour chaque film.

<?php 
require 'sqlconnect.php'; 

$id = (int) $_GET['film_id']; 
if($id === 0) 
    echo 'Erreur : url invalide.'; 
else { 
    $sql = 'SELECT COUNT(*) AS nb FROM films WHERE id='.$id; 
    $req = $pdo->query($sql); 
    $row = $req->fetch(); 
    $nb = $row['nb']; 

    if($nb > 0) { 
        $sql = 'SELECT * FROM films WHERE id = '.$id; 
        $req = $pdo->query($sql); 
        $film = $req->fetch(PDO::FETCH_OBJ); 

        echo '<h3>'.$film->titre.' par '.$film->auteur.'</h3>'; 
        echo $film->resume; 
    } else 
        echo 'Cette fiche n\'existe pas ou plus.<br/>' . 
          '<a href="liste.php">Retour à la liste</a>'; 
} 

?>

Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
1
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
113
Tu as été plus rapide, oups bien joué.
Enlèves le "e" à filme. ;)
0
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
113
Dans ta boucle tu fais un lien ( il va donc se répéter pour chaque film ) comme ceci : <a href="page-d-info.php?id=<?php echo donnees['id']; ?>">Information</a>

Puis dans la page : page-d-info.php ; tu récupères l'id avec $_GET[''], que tu insères dans ta requête php qui va chercher les informations.

Compris ? :)
1
Messages postés
18636
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 janvier 2022
4 353
Non ! Si tu regardes l'url générée, c'est toujours la même.
As-tu au moins un champ qui contient un identifiant unique pour chaque entrée ?
1
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
113
Par exemple un champ id, généralement qui est en début de Table et en Auto Incrémentation.
0
Messages postés
365
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 février 2017
15
je croi que j'ai compris mais quand je mais le code pour allez a la page


<a href="fiche_film.php?id=<?php echo donnees['id']; ?>"><?php echo $donnees['nom_du_film']; ?></a>

sa marche pas sa n'affiche pas la page avec ma liste de film

sa mais "Parse error: parse error, expecting '','' or '';'' in C:\wamp\www\Mon site\filmsa.php on line 35"


et le code de avion f-16 je le doit le mettre ou j'ai pas comprit.
0
Messages postés
365
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 février 2017
15
sais bon j'ai trouver

<a href="fiche_film.php?id=<?php echo $_GET['id']; ?>"><?php echo $donnees['nom_du_film']; ?></a>

a la place de donnees j'ai mit get est sa marche

mais maintenent comment sur ma page de la fiche du film d'avoir le bon film que j'ai cliquer sur le lien
0
Messages postés
365
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 février 2017
15
sais bon j'ai réussi a trouver avec votre aidez et le cours que j'ai relu
merci bien de votre aidez
0
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
113
LE $_GET[''], tu dois l'utiliser sur la page où tu fais une requête pour un seul film. En fait j'avais oublier le $ dans mon code ; essaies avec ceci :
<a href="fiche_film.php?id=<?php echo $donnees['id']; ?>"><?php echo $donnees['nom_du_film']; ?></a>


Puis dans la page-d-info.php ( peut importe le nom d'ailleurs ) tu récupères l'id avec $_GET[''] que tu insères dans ta requête sql qui va chercher les informations du film concerné. En la sécurisant : tester si le numéro existe, s'il est bien demandé, si c'est bien un numéro, etc.
0
Messages postés
18636
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 janvier 2022
4 353
Tu n'as plus fais de PHP depuis combien de temps pour faire ce genre d'erreur ? :)
Le "$" est à mettre avant le nom de la variable, soit avant "donnees".

<a href="fiche_film.php?id=<?php echo $donnees['id']; ?>"><?php echo $donnees['nom_du_film']; ?></a>
0
Messages postés
365
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 février 2017
15
la je suis pas d'accord quans je mais $echo donnees sa marche pas alors que quand je mais echo $donnees sa marche
0
Messages postés
18636
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 janvier 2022
4 353
Résolu d'abord ?
0
Messages postés
1628
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
5 septembre 2012
113
Oh mince, j'ai mal fais mon copier/coller du <'gras'>$</'gras'> !
Quelle horreur d'avoir écrire ceci, je modifie de suite. Te moques pas F16, je suis qu'un déb. ;)
Donc j'avais bien raison, nous avions oublier de mettre $ devant donnees['id'];
0
Messages postés
18636
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 janvier 2022
4 353
Non, TU avais oublié de mettre le "$" devant "donnees['id']" ;)
0