Redigering af databasepost i PHP
Lad os nu implementere redigering af brugeren.
For at gøre dette har vi brug for to sider: siden
edit.php, hvor formularen til
redigering af brugeren vil være placeret, og siden
save.php, hvor formularen vil blive sendt
for efterfølgende lagring.
Redigeringsside
Lad os først lave en formular på siden edit.php:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
I denne formular vil vi indlæse de aktuelle data
for brugeren fra databasen. Lad id for brugeren
til redigering blive sendt som en GET
parameter:
<?php
$id = $_GET['id'];
?>
Lad os oprette en forespørgsel for at hente brugeren:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Lad os udføre forespørgslen:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Lad os hente brugerens data ind i en variabel:
<?php
$user = mysqli_fetch_assoc($result);
?>
Lad os vise disse data i vores formular:
<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>
Lad os ændre formularens action, så den
bliver sendt til siden save.php:
<form action="save.php" method="POST">
Samtidig vil vi sende brugerens id som en
GET parameter:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Gemmeside
På siden save.php henter vi de sendte
data:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Lad os oprette en forespørgsel til opdatering:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Lad os udføre forespørgslen:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Lad os vise en besked om succes for operationen:
<?php
echo 'Brugeren blev ændret succesfuldt!';
?>
Praktiske opgaver
Implementer siden edit.php til redigering af
brugeren.
Implementer siden save.php til lagring af
resultatet af redigeringen.
På siden index.php, vis
en liste over brugere, så der for hver
bruger er et link til deres redigering:
<ul>
<li>user1 <a href="?edit=1">rediger</a></li>
<li>user2 <a href="?edit=2">rediger</a></li>
<li>user3 <a href="?edit=3">rediger</a></li>
</ul>
Implementer håndtering af formularen på siden edit.php.