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éthodeshow.php

Nous modifions seulement la partie qui permet de recevoir les données.

1
<?php
2
require 'bdd.php';
3
$id = $_GET['id'] ?? '';
4
5
// Recherche de la personne
6
$sql = 'SELECT * FROM personnes WHERE id=:id';
7
$statement = $db->prepare($sql);
8
$statement->execute(compact('id'));
9
$personne = $statement->fetch();
10
11
if (!$personne) {
12
    header('location:personnes.php');
13
    exit();
14
}
15
16
$page_title = "Afficher-$personne[nom]";
17
18
?>
19
<!DOCTYPE html>
20
<html lang='fr'>
21
22
<?php require 'head.php' ?>
23
24
<body>
25
    <?php require 'header.php' ?>
26
27
    <main>
28
        <h1>Afficher</h1>
29
30
        <section>
31
            <img src='photos/<?= $personne['photo'] ?>' alt='photo <?= $personne['nom'] ?>' />
32
            <?= $personne['nom'] ?>
33
            <?= $personne['prenom'] ?>
34
            <?= $personne['age'] ?> ans
35
        </section>
36
    </main>
37
38
    <?php require 'footer.php' ?>
39
</body>
40
41
</html>
1
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.

1
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]

1
$statement->execute(compact('id'));
2
// Equivalent à
3
$statement->execute(['id'=>$id]);

$statement exécute la requête sql en remplaçant les variables par la valeur des variables du tableau.

1
if (!$personne) {
2
    header('location:personnes.php');
3
    exit();
4
}

Si la personne n'existe pas une redirection vers la page personnes.php est réalisée.

1
$page_title = "Afficher-$personne[nom]";

Le titre est construit en fonction du nom de la personne.