Aktualisierungsproblem von MySQL-Daten in einem Formular
Verona
- php
Hallo liebe Leser,
ich habe ein Problem mit der Aktualisierung von Inhalten aus einer MySQL-Datenbank. Im Prinzip macht mein Script folgendes:
1.)mysql_connect() Verbindung zur Datenbank herstellen
2.)mysql_select_db() Datenbank auswählen
3.)mysql_query() Datenbankanfrage schicken
4.)mysql_fetch_array() Ergebnis der Abfrage in Array
5.)echo $ergebnis[][] Ausgabe in Pulldown-Menüs und Eingabefelder (select, input)
6.)$query="UPDATE..." Geänderte Daten aus Pulldown-Menüs und Eingabefeldern senden (POST)
7.)Das Formular ruft sich selber wieder bei Punkt 1 auf und soll dann die geänderten ("neuen") Inhalte anzeigen.
Ich habe den Rat eines Forumleser befolgt und folgendes an den Kopf der PHP-Datei gestellt:
********************************************************************
* *
* header("Expires: Wed, 01 Jan 2003 00:00:00 GMT"); *
* header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT"); *
* header("Cache-Control: no-cache"); *
* header("Pragma: no-cache"); *
* header("Cache-Control: post-check=0, pre-check=0"); *
* *
********************************************************************
(natürlich ohne die Sternchen[*])
Leider funktioniert das trotzdem nicht. Ich bekomme die aktuellen Daten erst angezeigt, wenn ich das Browserfenster aktualisiere. Was habe ich denn hier falsch gemacht? Das man eine neue PHP-Datei aufruft, kann es ja nicht sein, oder?! Vielleicht hat ja jemand schon mal das selbe Problem gehabt.
Gruß V.
Hallo Verona,
Leider funktioniert das trotzdem nicht. Ich bekomme die aktuellen Daten erst angezeigt, wenn ich das Browserfenster aktualisiere. Was habe ich denn hier falsch gemacht? Das man eine neue PHP-Datei aufruft, kann es ja nicht sein, oder?! Vielleicht hat ja jemand schon mal das selbe Problem gehabt.
naja, PHP baut Dir dynamisch eine Seite auf, Dir im Browser angezeigt werden soll. Da aber PHP serverseitig ausgeführt wird (genauso ja auch die Datenbankoperationen), bekommt Dein Browser davon, daß sich da was geändert hat, ja erstmal nix mit - warum dann die Anzeige ändern?
Was ich an Deiner Stelle machen würde, wäre sich die Seite mittels $php_self selbst aufrufen zu lassen und dann ggf. einen Parameter mitzugeben, der steuert, ob nur Nr. 1 bis 5 ausgeführt werden soll, oder vor Nr. 3 die Nr. 6 mit den geänderten Werten aus dem Formular. Ggf. kannst Du Dir damit noch einen Zugriff auf die DB schenken, weil Du Dein Formular unter Umständen auch mit den Werten aus dem Formular wieder füllen kannst - hängt aber davon ab, was in Deinem Formular drin steht bzw. was für Elemente es enthält.
Danke Andreas,
das habe ich schon gemacht. Ich habe ja den submit-Button, nach dessen Zustand ich mich ja erkundigen kann. "Na, wie geht es dir denn?" :-)
Zur Kontrolle hab ich ein ECHO geschickt. Es soll dann der Datensatz nochmal ausgelesen werden. Es funktioniert aber nicht. Der liest den erst neu aus, wenn ich aktualisiere.
Guten [Tageszeit],
Hallo liebe Leser,
ich habe ein Problem mit der Aktualisierung von Inhalten aus einer MySQL-Datenbank. Im Prinzip macht mein Script folgendes:
1.)mysql_connect() Verbindung zur Datenbank herstellen
2.)mysql_select_db() Datenbank auswählen
2a.) wenn submit, dann update der Daten.
3.)mysql_query() Datenbankanfrage schicken
4.)mysql_fetch_array() Ergebnis der Abfrage in Array
5.)echo $ergebnis[][] Ausgabe in Pulldown-Menüs und Eingabefelder (select, input)
6.)$query="UPDATE..." Geänderte Daten aus Pulldown-Menüs und Eingabefeldern senden (POST)
7.)Das Formular ruft sich selber wieder bei Punkt 1 auf und soll dann die geänderten ("neuen") Inhalte anzeigen.
Die Abarbeitungsreihenfolge lautet etwa so:
senden, (vom Client an den Server)
schreiben,
lesen,
anzeigen, =senden vom Server an den Client
Natürlich darf jede Stufe für sich nur ausgeführt werden, wenn die Bedingugnen stimmen.
Liebe Grüße aus http://www.braunschweig.de
Tom