Mailinglisten-Archive |
Hallo, in einem Skript das mit div. Datenbankabfragen eine statische Seite zusammenbastelt soll am Anfang noch ein Detail abgeprüft werden, auf Wunsch eine Änderung in der DB vorgenommen werden und dann die nötigen Abfragen, die sich eben auch auf den evtl. noch geänderten Wert beziehen vorgenommen werden. Jetzt suche ich eine Möglichkeit den weiteren Ablauf so zu verzögern, dass sichergestellt ist, dass die Wertänderung bereits erfolgt ist, bevor neu ausgelesen wird. also etwa so: $geschrieben = writeDB("tabelle","feld","wert"); Programm erst fortführen, wenn $geschrieben vorliegt. was nicht funktioniert ist das hier: (Code stark verkürzt und schematisiert) if ($aktualisiert != $heute) { if (!isset($_POST["ch_datum"])) { schreibe Formular mit Auswahlmöglichkeit ch_datum ja/nein die ("</div></body></html>"); // Entscheidung erzwingen } elseif ($_POST["ch_datum"] == "ja") { ... $setDate = update_log("feste", "aktualisiert", $oldDate, $aktualisierung, $bedingung); // damit wird die DB geändert <varianten> while (!($setDate)) { sleep(1); echo "1"; } while (!isset($setDate)) { sleep(1); echo "1"; } </varianten> echo "<p>Aktualisierungsdatum wurde geändert</p>"; } } Keine der beiden While-Bedingungen greift und der Rest des Skripts (außerhalb der if-Konstruktion) wird offenbar schon ausgeführt, bevor die Datenbankoperation update_log() beendet ist. Ach so, der Rückgabewert von update_log() ist im Moment ein array - falls das wichtig sein sollte. Syntaxproblem oder Denkfehler? Ich bin mir recht sicher, schon mal was zu solchen Problemen gelesen zu haben, aber irgendwie fehlen mir wohl die richtigen Suchbegriffe. gruß Susanne
php::bar PHP Wiki - Listenarchive