Modification d'enregistrement en base de données avec PHP
Implémentons maintenant la modification d'un utilisateur.
Pour cela, nous aurons besoin de deux pages : la page
edit.php, qui contiendra le
formulaire de modification de l'utilisateur, et la page
save.php, à laquelle le formulaire sera envoyé
pour enregistrement ultérieur.
Page de modification
Pour commencer, créons un formulaire sur la page edit.php :
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
Nous allons charger les données actuelles
de l'utilisateur depuis la base de données dans ce formulaire.
Soit id de l'utilisateur
à modifier transmis dans le paramètre GET
:
<?php
$id = $_GET['id'];
?>
Préparons la requête pour récupérer l'utilisateur :
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Exécutons la requête :
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Récupérons les données de l'utilisateur dans une variable :
<?php
$user = mysqli_fetch_assoc($result);
?>
Affichons ces données dans notre formulaire :
<form method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="age" value="<?= $user['age'] ?>">
<input name="salary" value="<?= $user['salary'] ?>">
<input type="submit">
</form>
Modifions l'action du formulaire pour qu'il
soit envoyé vers la page save.php :
<form action="save.php" method="POST">
Dans ce cas, nous transmettrons le
id de l'utilisateur à modifier en paramètre
GET :
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Page de sauvegarde
Sur la page save.php, récupérons les données
envoyées :
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Préparons la requête de mise à jour :
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Exécutons la requête :
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Affichons un message de succès de l'opération :
<?php
echo 'Utilisateur modifié avec succès !';
?>
Tâches pratiques
Implémentez la page edit.php pour modifier
un utilisateur.
Implémentez la page save.php pour sauvegarder
le résultat de la modification.
Sur la page index.php, affichez à
l'écran la liste des utilisateurs de telle sorte que pour chaque
utilisateur, il y ait un lien pour le modifier :
<ul>
<li>user1 <a href="?edit=1">edit</a></li>
<li>user2 <a href="?edit=2">edit</a></li>
<li>user3 <a href="?edit=3">edit</a></li>
</ul>
Implémentez le traitement du formulaire sur la page edit.php.