Datumsabhängige Aktion

makitaman

Mitglied
Hi Leute

Ich habe eine Toplisten - Tabelle

Ich möchte zu einem Bestimmten Datum zb. 10.10.2004 die hitsout und hitsin auf null setzen

Als bedingung sollen aber die vorhandenen Werte in die Spalte namens lastout und lastin
geschrieben werden.

hat jemand nen Rat

Die Seite
 
Vollkommen automatisch würde das nur über CronJobs gehen.

Ich gehe aber davon aus, dass deine Seite hin und wieder geladen wird.

Dann mach halt einfach folgendes:
PHP:
if ( $aktuellesdatum = "10.10.2004")
{
$update = "UPDATE `table` SET `lasthitin` = `hitin`, `lasthitout` = `hitout`";
$exec_update = mysql_query($update);

$update_2 = "UPDATE `table` SET `hitin` = '0', `hitout` = '0'";
$exec_update_2 = mysql_query($update_2);
}

shutdown
 
Hi hab das mal getestet.

er schreibt mir aber sofort die liste auf null auch wenn das Datum noch nicht erreicht wurde
habs auch so aml verswcuht geht auch nicht das selber Ergebniss:
PHP:
$datum=date("j.n.Y");
if ( $datum > "10.10.2004") 
{ 
$update = "UPDATE `top2` SET `lastin` = `hitsin`, `lastout` = `hitsout`"; 
$exec_update = mysql_query($update); 

$update_2 = "UPDATE `top2` SET `hitsin` = '0', `hitsout` = '0'"; 
$exec_update_2 = mysql_query($update_2); 
}

Ich habe diesen code direkt in meine Topliste eingefügt als hinweis für Fehlerbekämfung

mfg
 
Ich vermute mal, dass er mit dem Format des Datums (10.10.2004) in der Variablen nicht klar kommt, bzw sie mit deiner Bedingung nicht vergleichen kann, so dass er als Ergebnis immer true rausgibt.

Probiers mal mit date(z) -> Das gibt dir den aktuellen Tag im aktuellen Jahr aus (z.B. der 300ste Tag im Jahre 2004)

Wenn du das dann in deine Variable $datum lädst, dann hast du nur eine echte Integer Zahl drin.

Das ganze vergleichst du dann aber auch mit einer integer Zahl.

Müsstest du dir halt mal ein kleines Skript schreiben, dass dir für ein bestimmtes Datum den DAYOFYEAR ausgibt.

Dann kannst du noch probieren, eine weitere if-Abfrage über ein Select anzulegen

$select = "SELECT hitsin, hitsout from ....";
Ausführen
daten = mysql_fetch_object (ausführen)

$hitsin = (daten -> hitsin) usw

if (hitsin != 0)
{
Update ... SET hitsin = 0 usw
}

Natürlich alles in korrekter Syntax :)

shutdown
 
Zurück