Daten ändern
Wir bringen unserer Benutzerdaten-Verwaltung jetzt bei, Daten zu ändern!Wie funktioniert das Ändern von Daten?
Mit folgendem Befehl kannst du Einträge in deiner Tabelle
benutzer
aktualisieren:Anklicken zum Kopieren
$stmt = $conn->prepare("UPDATE benutzer SET name = ?, `alter` = ?, email = ? WHERE id = ?");
$stmt->execute([$name, $alter, $email, $id]);
UPDATE
weist die Tabelle an, bestimmte Felder zu ändern.- Die
WHERE id = ?
-Klausel stellt sicher, dass nur der Eintrag mit dieser ID verändert wird.Unser kompletter neuer Code
Da unser Skript mittlerweile ziemlich gewachsen ist, hier gleich die komplette neue Version:
Anklicken zum Kopieren
<?php
require "db-connection.php";
// Funktion zum Hinzufügen eines neuen Benutzers
function addBenutzer($name, $alter, $email)
{
global $conn;
$stmt = $conn->prepare("INSERT INTO benutzer (name, `alter`, email) VALUES (?, ?, ?)");
$stmt->execute([$name, $alter, $email]);
}
// Funktion zum Löschen eines Benutzers
function deleteBenutzer($id)
{
global $conn;
$stmt = $conn->prepare("DELETE FROM benutzer WHERE id = ?");
$stmt->execute([$id]);
}
// Funktion zum Aktualisieren der Benutzerdaten
function updateBenutzer($id, $name, $alter, $email)
{
global $conn;
$stmt = $conn->prepare("UPDATE benutzer SET name = ?, `alter` = ?, email = ? WHERE id = ?");
$stmt->execute([$name, $alter, $email, $id]);
}
// Überprüfen, ob das Formular zum Hinzufügen gesendet wurde
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["add"])) {
$name = $_POST["name"];
$alter = $_POST["alter"];
$email = $_POST["email"];
// Neuen Benutzer hinzufügen
addBenutzer($name, $alter, $email);
}
// Überprüfen, ob das Formular zum Löschen gesendet wurde
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["delete"])) {
$id = $_POST["delete"];
// Benutzer löschen
deleteBenutzer($id);
}
// Überprüfen, ob das Formular zur Aktualisierung gesendet wurde
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["update"])) {
$id = $_POST["update"];
$name = $_POST["name"];
$alter = $_POST["alter"];
$email = $_POST["email"];
// Benutzerdaten aktualisieren
updateBenutzer($id, $name, $alter, $email);
}
?>
<html>
<head>
<title>Benutzerdaten</title>
<style>
table {
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 8px;
}
</style>
</head>
<body>
<h1>Benutzerdaten</h1>
<table>
<tr>
<th>Name</th>
<th>Alter</th>
<th>Email</th>
<th colspan="2">Aktionen</th>
</tr>
<?php
$stmt = $conn->query("SELECT * FROM benutzer");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($stmt->rowCount() > 0) {
foreach ($rows as $row) {
echo "<tr>";
echo "<td>";
if (isset($_POST["edit"]) && $_POST["edit"] == $row["id"]) {
echo "<form method='POST' style='display: inline;'>";
echo "<input type='hidden' name='update' value='" . $row["id"] . "'>";
echo "<input type='text' name='name' value='" . $row["name"] . "' required>";
echo "</td><td>";
echo "<input type='number' name='alter' value='" . $row["alter"] . "' required>";
echo "</td><td>";
echo "<input type='email' name='email' value='" . $row["email"] . "' required>";
echo "</td><td>";
echo "<input type='submit' value='Speichern'>";
echo "</form>";
} else {
echo $row["name"];
}
echo "</td><td>";
echo $row["alter"];
echo "</td><td>";
echo $row["email"];
echo "</td><td>";
if (!isset($_POST["edit"]) || $_POST["edit"] != $row["id"]) {
echo "<form method='POST' style='display: inline;'>";
echo "<input type='hidden' name='edit' value='" . $row["id"] . "'>";
echo "<input type='submit' value='Bearbeiten'>";
echo "</form>";
}
echo "</td><td>";
echo "<form method='POST' style='display: inline;'>";
echo "<input type='hidden' name='delete' value='" . $row["id"] . "'>";
echo "<input type='submit' value='Löschen'>";
echo "</form>";
echo "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='5'>Keine Benutzerdaten vorhanden</td></tr>";
}
?>
</table>
<h2>Neuen Benutzer hinzufügen</h2>
<form method="POST">
<label for="name">Name:</label>
<input type="text" name="name" required>
<br>
<label for="alter">Alter:</label>
<input type="number" name="alter" required>
<br>
<label for="email">Email:</label>
<input type="email" name="email" required>
<br>
<input type="submit" name="add" value="Benutzer hinzufügen">
</form>
</body>
</html>
<?php
// Datenbankverbindung schließen
$conn = null;
?>
- Funktion
updateBenutzer()
hinzugefügt.- Formular zur Aktualisierung eingebaut.
- In der Tabelle erscheint beim Klick auf „Bearbeiten“ ein kleines Formular direkt in der Zeile.
- Nach dem Abspeichern werden die neuen Daten sofort übernommen!
Hinweis zur Sicherheit:
Auch hier gilt wieder: Für echte Anwendungen solltest du Benutzereingaben immer filtern und absichern!
Hier lernst du, wie das geht: Formulare sicher mit PHP verarbeiten.
Kommentare
Möchtest du etwas zu diesem Tutorial sagen?