Webseiten mit PHP und MySQL

Datenbanktabelle bearbeiten

 aufwärts

Tabelle mit "Bearbeiten"-Links darstellen

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är­schlüssel der Tabelle; dieser soll nicht bearbeitet werden können.

 

500101MeierStefan1995-03-17Bearbeiten
500102SchmidtPaula1997-04-23Bearbeiten
500103LehmannStefan1998-05-21Bearbeiten
500104MeierAnna1995-03-17Bearbeiten
Bild 1: Tabelle Stud mit Links zum Bearbeiten der Zeilen

Das ent­sprechende 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 Matrikel­nummer, 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>

 

Eingabeformular

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 Matrikel­nummer, bearbeitet und anschließend durch Betätigen der Schaltfläche Abschicken wieder an die PHP-Datei tabelle-bearbeiten.php zurück­geschickt werden.

Matrikelnummer:
Nachname:
Vorname:
Geburtsdatum:
 
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>

Geänderte Daten in die Datenbank zurück­schreiben

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:   up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   Datenschutz   ©   Created: 12.07.2006   Updated: 18.05.2020
Valid HTML 4.01 Transitional

Hochschule Flensburg
Campus Flensburg

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:

Medieninformatik

Wirtschaftsinformatik