Zufalls zahl alle 24h Stunden für eine Tabelle festlegen

Malchor

Erfahrenes Mitglied
Hallo Gemeinde,

ich habe da mal eine Frage.

Wenn ich eine Zufallszahl festlegen möchte, dies aber nur einmal am Tag passieren soll und nicht bei jedem Klick, was muss ich beachten bzw. wie macht man das?

Die Zufallszahl würde ich so rausbekommen wollen:
echo rand(29, 799);
 
Die Frage ist doch auch wie wird geprüft ob an diesem Tag bereits eine Zufallszahl erstellt wurde oder nicht. Dann muss diese Zahl ja auch irgendwie gespeichert werden.

Gib mal ein bisschen mehr vom Hintergrund bekannt, ob es z.B. eine Datenbank gibt wo die Zahl gespeichert wird.
 
Ein CronJob wird doch an einem festgelegtem Zeitpunkt 1 mal ausgeführt oder nicht? Daher bräuchte man keine Prüfung ob der schon gelaufen ist, man müsste die Zahl einfach nur speichern.

Oder sehe ich da was falsch?
 
Nei das ist richtig. Bei einem Cronjob wird definiert i welchem Abstand er ausgeführt werden soll.. in diesem Fall 24 Stunden.
 
Es ginge auch ohne Cronjob, wobei ein Cronjob sicherlich die elegantere Art ist.

Als erstes legst Du zwei Spalten in einer SQL DB an (Zufallszahl, Timestamp). Dann startest du das Script einmal und lässt die Zufallszahl sowie den aktuellen Timestamp eintragen. Nun überprüfst Du in deiner index.php, sprich in der obersten Ebene Deiner Page, ob der aktuelle Timestamp mindestens 24 h -> 86400 sek größer ist. Wenn dies so ist, lässt Du eine neue Zufallszahl generieren und den aktuellen Timestamp eintragen.
 
auch bei der Cronjob-Methode muss der Wert irgendwo gespeichert werden. Man will ihn ja sicher ab und zu mal abrufen. ;)

Mittels Datenbank wäre aber am schönsten. Ich weiß ja nicht, was du vor hast...aber das lässt zudem eine History zu, die man vllt hin und wieder mal gebrauchen kann.

Ich selber habe noch nie mit Cronjobs gearbeitet. Bedenke aber, dass du die Methode für den Cronjob nicht von außen zugänglich sein sollte. Also entweder sperrst du die Methode von außen, was aber dann schwierig ist, wenn der Cronjob von einem anderen Anbieter aus ausgeführt wird. Andererseits solltest du in der Cronjob-Methode trotzdem eine Abfrage zum letzten Timestamp machen.

Aber ich weiß auch nicht, was du vor hast... ;)
 
Es wurde um Hintergrund gebeten.
Es handelt sich um eine Flugplantabelle in der Flüge drinnstehen. Nun soll am besten kurz nach 0 Uhr festgelegt werden wie groß die Anzahl der Passagiere ist, die heute mit einem bestimmten Flug fliegen wollen würden. Diese Zahl würde dann in der Spalte Paxe gespeichert werden und soll für den gesamten tag gelten.

EDIT:
Ich weiß nicht ob mein Server Cronjobs unterstützt.
 
Zurück