phpbar.de logo

Mailinglisten-Archive

[php] Funktionsausführung abwarten

[php] Funktionsausführung abwarten

Susanne Jäger susjaeger at sujag.de
Fre Jul 30 11:54:05 CEST 2004


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