Webseiten mit PHP und MySQLDatenbanktabelle bearbeiten | ![]() |
Als nächstes soll eine vorhandene Tabelle, z.B. die Tabelle Stud, auf dem Bildschirm dargestellt werden (Bild 1). Zusätzlich soll hinter jeder Zeile ein Link mit dem Text "Bearbeiten" erscheinen. Beim Klicken auf diesen Link soll ein Formular aufgerufen werden, in dem die betreffenden Daten bearbeitet werden können. Das Attribut in Spalte 1, hier matrnr, ist der Primärschlüssel der Tabelle; dieser soll nicht bearbeitet werden können.
| ||||||||||||||||||||
Bild 1: Tabelle Stud mit Links zum Bearbeiten der Zeilen | ||||||||||||||||||||
Das entsprechende PHP-Programm tabelle-bearbeiten.php ist eine geringfügige Erweiterung des Programms zur Darstellung einer SQL-Anfrage, lediglich die Links sind als zusätzliche <td>-Elemente angefügt. Jeder Link enthält als Ziel die Datei eingabeformular.php, versehen mit dem Get-Parameter matrnr, der den Schlüssel der betreffenden Zeile enthält (hier die Matrikelnummer, also z.B. matrnr=500101).
tabelle-bearbeiten.php |
<html> <head> <title>Tabelle bearbeiten</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "ini.db.php"; // SQL-Anfrage: Ergebnis ist eine vorhandene Tabelle $sql="SELECT * FROM stud"; // Anfrage ausführen $result=sqlQuery($sql); // Tabelle in HTML darstellen echo "<table border=\"1\">\n"; while ($row=mysqli_fetch_row($result)) { echo "<tr>"; foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen echo "<td>$item</td>"; echo "<td><a href=\"eingabeformular.php?matrnr=$row[0]\">Bearbeiten</a></td>"; echo "</tr>\n"; } echo "</table>\n"; ?> </body> </html> |
Das folgende PHP-Programm eingabeformular.php stellt ein Eingabeformular für die Tabelle Stud auf dem Bildschirm dar (Bild 2). Hier können die Daten einer Zeile der Tabelle, mit Ausnahme der Matrikelnummer, bearbeitet und anschließend durch Betätigen der Schaltfläche Abschicken wieder an die PHP-Datei tabelle-bearbeiten.php zurückgeschickt werden.
| ||||||
Bild 2: Eingabeformular | ||||||
eingabeformular.php |
<html> <head> <title>Eingabeformular</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "ini.db.php"; // SQL-Anfrage: Zeile mit der übergebenen Matrikelnummer wählen $sql="SELECT * FROM stud WHERE matrnr=$_GET[matrnr]"; // Anfrage ausführen $result=sqlQuery($sql); // Formular darstellen if ($row=mysqli_fetch_row($result)) { echo "<form method=\"post\" action=\"tabelle-bearbeiten.php\">\n"; echo "<br>Matrikelnummer: <input type=\"text\" name=\"matrnr\" readonly value=\"$row[0]\">\n"; echo "<br>Nachname: <input type=\"text\" name=\"nachname\" value=\"$row[1]\">\n"; echo "<br>Vorname: <input type=\"text\" name=\"vorname\" value=\"$row[2]\">\n"; echo "<br>Geburtsdatum: <input type=\"text\" name=\"gebdat\" value=\"$row[3]\">\n"; echo "<br><br><input type=\"submit\" name=\"submit_eingabeformular\" value=\"Abschicken\">\n"; echo "</form>\n"; } else echo "Fehler: Matrikelnummer $_GET[matrnr] nicht vorhanden\n"; ?> </body> </html> |
Nach Betätigen der Schaltfläche Abschicken wird von der Datei eingabeformular.php in die Datei tabelle-bearbeiten.php zurückgekehrt.
Mit einem zusätzlichen Stück Programmcode in dieser Datei werden nun die geänderten Daten zurück in die Datenbank geschrieben. Danach wird die Tabelle erneut dargestellt.
Die Daten werden mit der Post-Methode übergeben, sie befinden sich im Array $_POST. Dass die Schaltfläche Abschicken, betätigt wurde, wird daran erkannt, dass $_POST['submit_eingabeformular'] gesetzt ist, also einen Wert enthält. Hierbei ist submit_eingabeformular der Name der Schaltfläche Abschicken.
Die Datei tabelle-bearbeiten.php wird in folgender Weise erweitert:
tabelle-bearbeiten.php |
<html> <head> <title>Tabelle bearbeiten</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "ini.db.php"; // übergebene Daten zurück in die Datenbank schreiben if (isset($_POST['submit_eingabeformular'])) // Submit-Schaltfläche des Eingabeformulars wurde betätigt { // SQL-Kommando: Ändern von Einträgen $sql="UPDATE stud SET nachname='$_POST[nachname]', vorname='$_POST[vorname]', gebdat='$_POST[gebdat]' WHERE matrnr=$_POST[matrnr]"; // SQL-Kommando ausführen sqlQuery($sql); } // Tabelle erneut darstellen $sql="SELECT * FROM stud"; // Anfrage ausführen $result=sqlQuery($sql); // Tabelle in HTML darstellen echo "<table border=\"1\">\n"; while ($row=mysqli_fetch_row($result)) { echo "<tr>"; foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen echo "<td>$item</td>"; echo "<td><a href=\"eingabeformular.php?matrnr=$row[0]\">Bearbeiten</a></td>"; echo "</tr>\n"; } echo "</table>\n"; ?> </body> </html> |
Sie benötigen also die hier zuletzt gezeigte Datei tabelle-bearbeiten.php und die Datei eingabeformular.php, um das Wechselspiel zwischen der Änderung von Einträgen und Darstellung der Tabelle mit den neuen Einträgen zu realisieren. Zusätzlich benötigen Sie noch die Datei ini.db.php, um die Verbindung zur Datenbank herzustellen.
Weiter mit:
![]() |
![]() |
![]() |
Informatik in Flensburg studieren...
Neu gestaltetes Studienangebot:
Bachelor-Studiengang
Angewandte Informatik
mit Schwerpunkten auf den Themen Software, Web, Mobile, Security und Usability.
Ihr Abschluss
nach 7 Semestern:
Bachelor of Science
Master-Studiengang
Angewandte Informatik
Ein projektorientiertes Studium auf höchstem Niveau mit den Schwerpunkten Internet-Sicherheit, Mobile Computing und Human-Computer Interaction.
Ihr Abschluss
nach 3 Semestern:
Master of Science
Weitere Informatik-Studienangebote an der Hochschule Flensburg: