Daten löschen
Im nächsten Schritt wollen wir unsere Benutzerdaten-Verwaltung um eine Löschen-Funktion ergänzen.Dazu fügst du den folgenden Code wieder in eine neue Zeile nach der schließenden, geschweiften Klammer } nach der Funktion
function addBenutzer($name, $alter, $email)
ein:Anklicken zum Kopieren
// Funktion zum Löschen eines Benutzers
function deleteBenutzer($id)
{
global $conn;
$stmt = $conn->prepare("DELETE FROM benutzer WHERE id = ?");
$stmt->execute([$id]);
}
Die Funktion
deleteBenutzer($id)
löscht den Benutzer mit der angegebenen ID aus der Datenbanktabelle "benutzer
". Dazu wird der Befehl $stmt = $conn->prepare("DELETE FROM benutzer WHERE id = ?");
$stmt->execute([$id]);
verwendet.Nun fügst du den folgenden Code nach der schließenden, geschweiften Klammer von
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["add"]))
ein:Anklicken zum Kopieren
// Ü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);
}
Mit
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["delete"]))
weisen wor PHP an, zu prüfen, ob die Seite mit POST-Header aufgerufen wird, was nach dem Drücken von Löschen der Fall ist.Dann änderst du den <table>-Teil ab, und fügst eine neue Spalte mit Aktionen ein:
Anklicken zum Kopieren
<table>
<tr>
<th>Name</th>
<th>Alter</th>
<th>Email</th>
<th>Aktionen</th>
</tr>
Zu guter letzt änderst du den
foreach ($rows as $row)
-Teil ab und fügst eine neue Spalte mit einem Button zum löschen ein, der eine versteckte ID enthält:Anklicken zum Kopieren
foreach ($rows as $row) {
echo "<tr>";
echo "<td>" . $row["name"] . "</td>";
echo "<td>" . $row["alter"] . "</td>";
echo "<td>" . $row["email"] . "</td>";
echo "<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>";
}
Ja, kompliziert!
Deshalb hier noch einmal der gesamte Code, den wir jetzt haben sollten: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]);
}
// Ü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);
}
?>
<!DOCTYPE html>
<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>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>" . $row["name"] . "</td>";
echo "<td>" . $row["alter"] . "</td>";
echo "<td>" . $row["email"] . "</td>";
echo "<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='4'>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;
?>
Mit diesem Code hast du jetzt eine Seite, die dir deine Benutzer in einer Tabelle anzeigt, du hast unterhalb der Tabelle ein Formular, in das du neue Benutzer eintragen kannst und in jeder Zeile ist ein Button zum Löschen der jeweiligen Zeile!
Bitte beachte: Dieses Script ist im Bezug auf Sicherheit nicht zu verwenden! Schaue dir gerne mein Tutorial zum absichern von Formularen mit PHP an.
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!