Zeitgesteuertes Update in der Datenbank

Anacondi

Erfahrenes Mitglied
Hallo.
ich habe in der datenbank eine tabelle mit aufgaben.
Jeder User darf 20 aufgaben pro tag erledigen.
ist eine Aufgabe erledigt, wird in der datenbank von 20 runter geschrieben, bis 0. soweit alles klar.

Jetzt möchte ich aber, das um 0 Uhr die tabelle aufgaben_anzahl resettet wird und wieder auf 20 gesetzt wird.

Ich habe keine Ahnung, wie ich das realisieren muß.
Für Vorschläge (am besten mit kurzem Beispiel wäre ich dankbar.
 
Schreibe ein script das genau dies tut...
Und lasse dies um 0 Uhr über ein Cronjob starten.
Das Script an sich sollte jedoch selbst auch prüfen ob die Zeit stimmt,
da sonst User das Script einfach aufrufen könnten um das ganze zu resetten.^^
Falls du keine eigenen CronJobs aufm Server anlegen kannst,
kannst du Kostenlose Cronjob Services usen wie zB: https://www.cronjob.de/
 
Zuletzt bearbeitet:
Wenn du ne möglichkeit findest das sich das script spontan selbst ausführt gehts auch anders,
amsonsten gäbst nurnoch die Möglichkeit, dass du im script prüfst
wan das letzte mal resettet wurde und wenn das 24h her ist ressettet wird
beim nächsten aufruf nach 0 uhr...
allerdings brauchste dan sehr viele besucher damit das funktioniert, ein cronjob is die beste lösung ;)
 
Oder du Protokollierst einfach die Aufgaben die ein User ausführte in einer Tabelle mit einem Zeitstempel.
Dann kannst du jeder Zeit abfragen wie viele und welche Aufgaben er heute/gestern oder sonst wann erledigt hat.
 
Ich habs jetzt erst mal so geregelt: aber gefällt mir nicht so ganz. Ein PC von mir loggt sich täglich 00:01 Uhr ein und prüft die Zeit
PHP:
 $sql2 = "select * from aufgaben WHERE aufgaben_user_id = '$id'";
	$result2 = mysql_query ($sql2); 
	 

if (mysql_num_rows ($result2) > 0) 

{ $data2 = mysql_fetch_array ($result2);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["timestamp_aktuell"] = $data2["timestamp_aktuell"];  
  $_SESSION["timestamp_24"] = $data2["timestamp_24"]; }  else  
{
$eintragen = mysql_query("INSERT INTO aufgaben (aufgaben_user_id) VALUES ('$id')");	
}
$datum2 = time();
$update = mysql_query("UPDATE aufgaben Set timestamp_aktuell = '$datum2'");
$v24 = $_SESSION["timestamp_24"] + '86400';
$anzahl = '20';
if ($datum2 > $_SESSION["timestamp_24"])
{
	$update = mysql_query("UPDATE aufgaben Set timestamp_24 = '$v24', aufgaben_anzahl = '$anzahl'");
 
Zurück