ich habe mir einen Counter in PHP programmiert der mit MySQL arbeitet.
Dieses Script speichert 2 Tage lang alle Ips + Zeitpunkt.
Damit möchte ich dann die User die gestern und heute auf meiner Seite waren auslesen.
Ist ein eintrag älter als 2 Tage wird er automatisch gelöscht. Nun wurde aber leider zm 1 Dezember auch meine Einträge von "Gestern" gelöscht.
Wie kann ich diesen Bug beheben?
<?php //Online-abfragen / löschen $result = mysql_query("DELETE FROM hp_counter_online WHERE DATE_ADD(time, INTERVAL ".$online_interval." MINUTE) < NOW()"); // Wenn noch nicht als online eingetragen als neuer Besucher für heute eintragen if(mysql_num_rows(mysql_query("SELECT ip FROM hp_counter_online WHERE ip='".IP."'")) <= 0){ // Eintragen in Onlinetabelle mysql_query("INSERT INTO hp_counter_online (ip, time, place ) VALUES ('".IP."',NOW(), '".PAGE."')"); // Eintragen in User heute/gestern - Tabelle mysql_query("INSERT INTO hp_counter_heute (ip, time) VALUES ('".IP."',NOW())"); }else{ // Ort updaten mysql_query("UPDATE hp_counter_online SET time = NOW(), place = '".PAGE."' WHERE ip='".IP."'"); } //alle Einträge die älter als 2 tage sind löschen... hier steckt dnke ich der Fehler mysql_query("DELETE FROM hp_counter_heute WHERE DATE_FORMAT(time, '%d') < DATE_FORMAT(NOW(), '%d')-1"); // Auslesen $u_today=mysql_num_rows(mysql_query("SELECT ip FROM hp_counter_heute WHERE DATE_FORMAT(time, '%d') = DATE_FORMAT(NOW(), '%d')")); $u_yesterday=mysql_num_rows(mysql_query("SELECT ip FROM hp_counter_heute WHERE DATE_FORMAT(time, '%d') = DATE_FORMAT(NOW(), '%d')-1")); ?>
Gruß,
Toasterfraktion
Dieser Beitrag wurde von Toasterfraktion bearbeitet: 01. Dezember 2008 - 18:18