Tutorials » MySQL: Daten ändern

Daten ändern

Um ein ändern (update) deiner vorhanden Daten mit PHP und MySQL durchzuführen, benötigst du folgende Code-Anweisung:

Code anklicken zum kopieren

$stmt = $conn->prepare("UPDATE benutzer SET name = ?, `alter` = ?, email = ? WHERE id = ?");
$stmt->execute([$name, $alter, $email, $id]);

Code anklicken zum kopieren


Mit UPDATE wird deine Datenbankt-Tabelle benutzer angewiesen, die Felder name, alter und email mit den Werten in den Variablen $name, $alter und $email zu befüllen.

Um das in unserer Benutzerdaten-Verwaltung umzusetzen, benötigst du den folgenden Code. Da er inzwischen recht umfrangreich geworden ist, hier der gesamte Code, von vorne bis hinten. Am Ende des Codes gibt es noch ein paar Ergänzungen dazu:

Code 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);
}
?>

<!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 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='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;
?>

Code anklicken zum kopieren


In dieser Lösung wurde eine weitere Funktion updateBenutzer hinzugefügt, um die Benutzerdaten in der Datenbank zu aktualisieren. Der Code wurde um die Verarbeitung des Aktualisierungsformulars erweitert.

Wenn das Aktualisierungsformular abgeschickt wird, werden die Benutzerdaten (ID, Name, Alter, E-Mail) aus dem Formular abgerufen und an die Funktion updateBenutzer übergeben. Die Funktion führt eine SQL-UPDATE-Anweisung aus, um die Benutzerdaten in der Datenbank zu aktualisieren.

Im HTML-Code wurde eine neue Spalte "Bearbeiten" zur Tabelle hinzugefügt. Wenn der "Bearbeiten"-Button in einer Zeile gedrückt wird, wird das Aktualisierungsformular angezeigt, in dem die aktuellen Benutzerdaten angezeigt werden. Wenn das Formular abgeschickt wird, werden die geänderten Benutzerdaten an die Funktion updateBenutzer übergeben.


Zurück


Kommentare

Möchtest du etwas zu diesem Tutorial sagen?