Online Script

wod2008

Erfahrenes Mitglied
Hi
ich habe folgendes Script gemacht, dass zeigen soll wer am diesen tAg online war:
PHP:
<?php    $sql = "SELECT
COUNT(*) as Anzahl
FROM
Onlinetoday
WHERE
IP = '".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
if($row['Anzahl']) {        // Nur Datum Updaten
$sql = "UPDATE
Onlinetoday
SET
Datum = NOW()
WHERE
IP = '".$_SERVER['REMOTE_ADDR']."'";
mysql_query($sql) OR die(mysql_error());    }
else {        // Neuer eintra
$sql = "INSERT INTO Onlinetoday
(IP, Datum)
VALUES
('".$_SERVER['REMOTE_ADDR']."', NOW())";
mysql_query($sql) OR die(mysql_error());    }
 // alte Datensätze löschen
 $sql = "DELETE FROM
 Onlinetoday
 WHERE
 DATE_SUB(NOW(), INTERVAL 1440 MINUTE) > Datum"; //hier
  mysql_query($sql) OR die(mysql_error());
   // Anzahl Ausgeben
   $sql = "SELECT
   COUNT(*) as Anzahl
   FROM
   Onlinetoday";
   $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
     echo "User Heute Online: ".$row['Anzahl']."<br />";




     ?>
Ich habe auh angegeben das die DB einträge nach 24H gelöscht werden sollen, aber ich will eig das sie immer um 24Uhr gelöscht werden.
weiß jmd wie das geht

lg
 
Einfach da, wo dein bisheriger Löschquery ist.

Halt
PHP:
if(date('H') == 24) {
   // Hier deinen Löschquery
}

Obwohl, moment, geht so nicht. Geht erst bei einem Aufruf. Da musst du glaub ich mit Cronjobs arbeiten. Frag mal nen Profi ;)
 
Entweder du baust eine Überprüfung ein, die bei der Ausgabe Einträge ignoriert, die vom Vortag stammen und kombinierst das mit einer Löschfunktion
oder du brauchst einen o.g. Cronjob (kostenlos unter cronjob.de)
 
Zurück