Bewerken van database records in PHP
Laten we nu het bewerken van een gebruiker implementeren.
Hiervoor hebben we twee pagina's nodig: de pagina
edit.php, waar het formulier voor het bewerken
van de gebruiker zal staan, en de pagina
save.php, waar het formulier naartoe wordt
verzonden voor opslaan.
Bewerkpagina
Laten we eerst op de pagina edit.php een
formulier maken:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
In dit formulier laden we de huidige gegevens
van de gebruiker uit de database. Laat de id van de gebruiker
die bewerkt moet worden worden doorgegeven in de GET
parameter:
<?php
$id = $_GET['id'];
?>
Laten we een query opstellen om de gebruiker op te halen:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Laten we de query uitvoeren:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
We halen de gegevens van de gebruiker op in een variabele:
<?php
$user = mysqli_fetch_assoc($result);
?>
Laten we deze gegevens in ons formulier tonen:
<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>
Laten we de action van het formulier aanpassen zodat het
wordt verzonden naar de pagina save.php:
<form action="save.php" method="POST">
Hierbij geven we de id van de te bewerken gebruiker door
als GET parameter:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Opslagpagina
Op de pagina save.php halen we de verzonden
gegevens op:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Laten we een update query opstellen:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Laten we de query uitvoeren:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
We tonen een bericht dat de operatie succesvol was:
<?php
echo 'Gebruiker succesvol aangepast!';
?>
Praktische opdrachten
Implementeer de pagina edit.php voor het bewerken
van een gebruiker.
Implementeer de pagina save.php voor het opslaan
van het bewerkingsresultaat.
Toon op de pagina index.php een
lijst van gebruikers, zodat voor elke
gebruiker een link staat om hem te bewerken:
<ul>
<li>user1 <a href="?edit=1">bewerken</a></li>
<li>user2 <a href="?edit=2">bewerken</a></li>
<li>user3 <a href="?edit=3">bewerken</a></li>
</ul>
Implementeer de verwerking van het formulier op de pagina edit.php.