PHP 4.3

13.6.2 Speichern der geänderten Daten

Nachdem der Benutzer alle zu ändernden Daten eingetragen und auf die Schaltfläche "ändern" geklickt hat, sollen die Werte nun auch in die Datenbank übernommen werden. Das geschieht wieder in mehreren einzelnen Schritten:

1. Aufbau der Verbindung zur Datenbank
2. Eintragen der Werte
3. Beenden der Verbindung

Schritt 1 und 3 sind bereits bekannt, so dass wir uns hier nur dem zweiten Schritt zu widmen brauchen. Leider gibt es in PHP keine Funktionen, die das Ändern von Werten in der Datenbank ermöglichen. Die Vorgehensweise ist die gleiche wie beim Auslesen von Daten: Mit Hilfe der Funktion mysql_query() schicken Sie eine SQL-Anweisung an die Datenbank, die dann für die Durchführung der Änderung sorgt. Als Rückgabewert liefert die Funktion in einem solchen Fall die Anzahl der von der Änderung betroffenen Datensätze, was Sie durchaus dazu nutzen könnten, die korrekte Durchführung der Anweisung zu überprüfen. Im Beispiel hier wollen wir allerdings darauf verzichten, um die Komplexität des Programms nicht zu erhöhen.

Wie im SQL-Teil gelernt, sieht die Anweisung zum Ändern von Daten folgendermaßen aus:

  UPDATE tabelle
        SET spalte1 = wert1,
        spalte2 = wert2,
        …
        WHERE bedingung

Hinter dem Wort UPDATE geben Sie an, welche Tabelle Sie ändern wollen, in unserem Fall also kunden. Dann folgen die Spaltennamen und die neu einzutragenden Werte. Die Spaltennamen sind bekannt: anrede, vorname, nachname, adresse, postleitzahl und ort. Die Werte, die jeweils in die Felder einzutragen sind, hat der Benutzer gerade im Formular eingegeben, sie stehen also in $HTTP_POST_VARS["anrede"], $HTTP_POST_VARS["vorname"] usw.

Da Sie die Kundennummer kennen, ist auch die Formulierung der Bedingung kein Problem: Die Spalte kundennr soll den Wert 19283746 beinhalten oder, um es allgemeingültiger zu halten, den aus der Änderungsseite übertragenen Wert $HTTP_POST_VARS["kundennr"].

Insgesamt lautet die SQL-Anweisung also folgendermaßen:

  "UPDATE kunden " .
  "SET anrede = '" . $HTTP_POST_VARS["anrede"] . "', " .
  "SET vorname = '" . $HTTP_POST_VARS["vorname"] . "', " .
  "SET nachname = '" . $HTTP_POST_VARS["nachname"] . "', " .
  "SET adresse = '" . $HTTP_POST_VARS["adresse"] . "', " .
  "SET postleitzahl = '" . $HTTP_POST_VARS["postleitzahl"] . "', " .
  "SET ort = '" . $HTTP_POST_VARS["ort"] . "'" .
  " WHERE kundennr = " . $HTTP_POST_VARS["kundennr"]

Zusammen mit Aufbau und Beendigung der Datenbankverbindung ergibt sich folgendes Skript, das in dem beim Absenden des Formulars aufgerufenen Dokument aendern.php enthalten sein muss:

  //Schritt 1: Verbindungsaufbau
  $verbindung = mysql_connect("localhost", "", "");
  mysql_select_db("versandhaus", $verbindung);
  
  //Schritt 2: Daten ändern
  mysql_query("UPDATE kunden ".
  "SET anrede = '".$HTTP_POST_VARS["anrede"]."', ".
  "vorname = '".$HTTP_POST_VARS["vorname"]."', ".
  "nachname = '".$HTTP_POST_VARS["nachname"]."', ".
  "adresse = '".$HTTP_POST_VARS["adresse"]."', ".
  "postleitzahl = '".$HTTP_POST_VARS["postleitzahl"]."', ".
  "ort = '".$HTTP_POST_VARS["ort"]."'".
  " WHERE kundennr = ".$HTTP_POST_VARS["kundennr"], $verbindung);


  //Schritt 3: Verbindung beenden
  mysql_close($verbindung);

Kommentare (0)

Ihr Kommentar

Name