Einen Datensatz aktualisieren

Öffnen Sie die zu Beginn erstellte Datei “update.php” und freuen sich auf die Abarbeitung der folgenden Arbeitsschritte ;-)

1. Vorselektion der Formularwerte

a) die Abfrage erstellen

Um sicherzustellen, dass die Formularelemente einer “Datensatz aktualisieren” – Seite bei ihrem Aufruf die aktuell gespeicherten Werte des betreffenden Datensatzes als vorselektiert anzeigen, wird eine Abfrage erstellt, die – wie im folgenden Screenshot verdeutlicht – die beiden Tabellenfelder “description” und “col_datetime” einbezieht.

Darüber hinaus muss in dieser Abfrage mit dem Beispielnamen “main” noch spezifiziert werden, welcher Datensatz überhaupt aktualisiert werden soll. Da die in der vorherigen Seite erläuterte Datenliste eine geeignete “Kennung” in Form des Primärschlüssel-Wertes (z.B. id=2) übermittelt, wählen Sie hier die entsprechende Filterbedingung:

  • id (Tabellenfeld)
  • =
  • URL-Parameter: id

Erstellung der 'update.php' - Abfrage mit Dreamweaver

b) der Wert des Textfeldes

Wie das folgende Bild visualisiert, ist es mit Dreamweaver ein Leichtes, den Wert eines anfänglich leeren Textfeldes mit dem Resultat der vorgenannten Abfrage zu befüllen:


Wert des Textfeldes definieren

c) die Werte der Auswahllisten: Vorbereitungen treffen

Der vorselektierte Wert einer Auswahlliste lässt sich in ähnlicher Weise definieren.

So weit, so gut, aber im konkreten Fall steht man vor einem Riesenproblem: der Datumswert ist im Tabellenfeld “col_datetime” hinterlegt, aber da wir gar 3 Listen zur Datumsauswahl haben, müssen wir dafür sorgen, dass der “col_datetime” – Wert auf diese Listen verteilt wird.

An diesem Punkt wird´s deutlich kniffeliger, und jetzt müssen Sie sich – salopp gesagt – zum ersten Mal die Hände schmutzig machen, weil die in Schritt a) erstellte Dreamweaver-Abfrage nicht geeignet ist, solch einen anspruchsvollen Spezialfall zu automatisieren.

Schauen wir doch einmal den von Dreamweaver erzeugten Abfrage-Code in der CODE-Ansicht an:


PHP-Code der originalen Abfrage

Um das gewünschte Resultat zu erreichen, ändern Sie die markierte SQL-Abfrage wie folgt, wobei ich noch einmal darauf hinweisen möchte, dass diese Erweiterungen dazu führen werden, dass die Abfrage nicht länger über Dreamweavers “Serververhalten”- Panel bearbeitet werden kann.


die erweiterte SQL-Abfrage

Sie werden sich vielleicht fragen, was diese Erweiterung bezwecken soll:

1. das Tabellenfeld “col_datetime” wird dreifach referenziert.

2. jede Referenz stellt eine eigenständige Instanz dar.

3. jede Referenz verwendet eine bestimmte MySQL – Datumsfunktion (YEAR, MONTH, DAY), welche den Jahr-, Monat- bzw. Tag – Wert aus der “col_datetime” – Datumsangabe extrahiert.

4. durch den Zusatz “AS [BeliebigeBezeichung]” wird für jede Referenz eine sog. “Alias” – Tabellenspalte erzeugt, welche im Rahmen einer Datenanzeige zusätzlich zu den real existierenden Spalten verwendet werden kann.

d) die Werte der Auswahllisten: Vorbereitungen umsetzen

Ab jetzt wird´s wieder deutlich einfacher, weil Sie zur Vorselektierung einer Datum-Auswahlliste Dreamweavers “Bordmittel” verwenden können:

die Datums-Auswahllisten vorselektieren

Wie im unteren Bereich des obigen Bildes demonstriert, wird Ihnen Dreamweaver ebenfalls die von Ihnen erzeugten “Alias” – Tabellenspalten zur Auswahl anbieten — nicht schlecht :-)

Und nun kommen wir endlich zur..

2. Aktualisierung

Da Sie es geschafft haben diesem Tutorial bis hierhin zu folgen und auch garantiert alle bisherigen Seiten verstanden haben [grins], verlasse ich mich an dieser Stelle ganz einfach auf Ihr Eriinnerungsvermögen und behaupte:

1. der Aktualisierungsvorgang wird Ihnen vertraut vorkommen, weil Ihnen Dreamweavers “Datensatz aktualisieren” Serververhalten dieselben Optionen anbieten wird wie das “Datensatz einfügen” – Serververhalten.

2. die im Rahmen des “Datensatz eintragen” – Vorgangs erfolgte Modifikation des “Query” – Codeblocks zwecks Zusammenfassung der selektierten Werte der drei “Datum” – Auswahllisten als einzelnen “Sammelwert” muss natürlich auch hier implementiert werden.

Das war´s !