Bearbeitung eines Datenbankeintrags in PHP
Lassen Sie uns nun die Bearbeitung eines Benutzers implementieren.
Dafür benötigen wir zwei Seiten: die Seite
edit.php, auf der das Formular zur
Bearbeitung des Benutzers platziert wird, und die Seite
save.php, an die das Formular zur
späteren Speicherung gesendet wird.
Bearbeitungsseite
Erstellen wir zunächst auf der Seite edit.php ein
Formular:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
In dieses Formular werden wir die aktuellen Daten
des Benutzers aus der Datenbank laden. Die id des Benutzers
für die Bearbeitung wird im GET-Parameter
übergeben:
<?php
$id = $_GET['id'];
?>
Lassen Sie uns eine Abfrage zum Abrufen des Benutzers erstellen:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Führen wir die Abfrage aus:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Holen wir uns die Benutzerdaten in eine Variable:
<?php
$user = mysqli_fetch_assoc($result);
?>
Geben wir diese Daten in unserem Formular aus:
<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>
Ändern wir das action-Attribut des Formulars, damit es
an die Seite save.php gesendet wird:
<form action="save.php" method="POST">
Dabei wird die id des zu bearbeitenden Benutzers als
GET-Parameter übergeben:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Speicherseite
Auf der Seite save.php holen wir uns die gesendeten
Daten:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Erstellen wir eine Aktualisierungsabfrage:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Führen wir die Abfrage aus:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Geben wir eine Erfolgsmeldung aus:
<?php
echo 'Benutzer erfolgreich geändert!';
?>
Praktische Aufgaben
Implementieren Sie die Seite edit.php zur Bearbeitung
eines Benutzers.
Implementieren Sie die Seite save.php zur Speicherung
des Bearbeitungsergebnisses.
Geben Sie auf der Seite index.php die
Liste der Benutzer so aus, dass für jeden
Benutzer ein Link zu seiner Bearbeitung vorhanden ist:
<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>
Implementieren Sie die Verarbeitung des Formulars auf der Seite edit.php.