Afficher
Nous modifions notre fichier show.php afin qu'il récupère dans la base de données, la personne correspondant à l'id demandé.
Méthode : show.php
Nous modifions seulement la partie qui permet de recevoir les données.
require 'bdd.php';
$id = $_GET['id'] ?? '';
// Recherche de la personne
$sql = 'SELECT * FROM personnes WHERE id=:id';
$statement = $db->prepare($sql);
$statement->execute(compact('id'));
$personne = $statement->fetch();
if (!$personne) {
header('location:personnes.php');
exit();
}
$page_title = "Afficher-$personne[nom]";
<html lang='fr'>
require 'head.php'
<body>
require 'header.php'
<main>
<h1>Afficher</h1>
<section>
<img src='photos/= $personne['photo'] ' alt='photo = $personne['nom'] ' />
= $personne['nom']
= $personne['prenom']
= $personne['age'] ans
</section>
</main>
require 'footer.php'
</body>
</html>
SELECT * FROM personnes WHERE id=:id
Requête sql de sélection d'une personne selon son id. :id est une variable dont le contenu sera transmis par la méthode execute.
compact('id')
La fonction compact génère un tableau associatif à partir d'une chaine de caractères, ou d'un tableau de chaines de caractères.
compact(['a','b','c']) --> ['a'=>$a, 'b'=>$b, 'c'=> $c] ; compact('a') --> ['a'=>$a]
$statement->execute(compact('id'));
// Equivalent à
$statement->execute(['id'=>$id]);
$statement exécute la requête sql en remplaçant les variables par la valeur des variables du tableau.
if (!$personne) {
header('location:personnes.php');
exit();
}
Si la personne n'existe pas une redirection vers la page personnes.php est réalisée.
$page_title = "Afficher-$personne[nom]";
Le titre est construit en fonction du nom de la personne.