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?
Werbung
Du suchst einen günstigen Anbieter für Webhosting? Netcup hat alles, was du suchst!
Sichere dir jetzt einen 5€-Gutschein für Neukunden!