Hallöchen...
Ich hab im Moment vom ganzen Coden ein Brett vor dem Kopf und bekomm diese einfache Sache nicht hin:
Ich möchte eine Funktion ausführen, die aus einer Mysql-Tabelle Daten nimmt und endweder an bestimmten Wochentagen (immer Dienstags) oder an bestimmten Monatstagen (immer am 1. oder so) eine Funktion ausführt. Wenn das Script per Cron oder von Hand täglich ausgeführt wird, kein Problem. Wie kann ich das aber machen wenn das Script *nicht* täglich aufgerufen wird? Also ausrechnen, wieviele Dienstage zwischen dem letzten Aufruf sind und die dazugehörigen Timestamps zurückgibt?
Bisher hab ich folgendes:
Das Feld "interval" hat jeweils den Inhalt weekly:2 für Dienstags, weekly:3 für Mittwochs... oder monthly:1 bis monthly:28.
Die Funktion get_twelve() gibt nur den Timestamp von heute, 12 Uhr zurück.
Die Funktion die aufgerufen werden soll (dieshierausfuehren()
aktualisiert den Datensatz in der Ursprungstabelle so, dass lasttime auf heute, 12 Uhr steht, so dass es irgendwie rechnerisch gehen sollte.
Hat jemand mein wirres Gefasel verstanden und eine Idee wie ich das machen kann?
Ich hab im Moment vom ganzen Coden ein Brett vor dem Kopf und bekomm diese einfache Sache nicht hin:
Ich möchte eine Funktion ausführen, die aus einer Mysql-Tabelle Daten nimmt und endweder an bestimmten Wochentagen (immer Dienstags) oder an bestimmten Monatstagen (immer am 1. oder so) eine Funktion ausführt. Wenn das Script per Cron oder von Hand täglich ausgeführt wird, kein Problem. Wie kann ich das aber machen wenn das Script *nicht* täglich aufgerufen wird? Also ausrechnen, wieviele Dienstage zwischen dem letzten Aufruf sind und die dazugehörigen Timestamps zurückgibt?
Bisher hab ich folgendes:
Code:
while($zeile=$db->fetch_array($sql)){ $intervall=explode(":",$zeile['interval']); if($intervall[0]=="weekly"){ $date=date("w"); } if($intervall[0]=="monthly"){ $date=date("j"); } if($intervall[1]==$date && $zeile['lasttime']!=get_twelve()){ dieshierausfuehren($zeile['id']); } }
Die Funktion get_twelve() gibt nur den Timestamp von heute, 12 Uhr zurück.
Die Funktion die aufgerufen werden soll (dieshierausfuehren()

Hat jemand mein wirres Gefasel verstanden und eine Idee wie ich das machen kann?
Kommentar