Willkommen in der Webstatt Zum Webstatt Blog und Stories
phore phore am 29.03.07 15:14

Hallo

Auf einer Webseite habe ich einen Counter, der IP und Timestamp einträgt. Dieser Counter dient als Tages-Besucher Counter, ich zähle einfach alle Einträge.

Dann hab ich vor dem Eintragen noch ein Löschquery, der allfällige Einträge von gestern rauschlöschen würde. Das Query sieht so aus:

// Einträge von gestern löschen
mysql_query("DELETE FROM `cntheute` WHERE DATE_FORMAT(`time`, '%e') < DATE_FORMAT(NOW(),'%e')");


Funktioniert eigentlich auch immer, ausser vom 09. auf den 10. eines Monats, und ich glaube den Monatswechsel bewältigt er auch nicht.

Wie muss ich das anpassen dass auch diese Wechsel klappen?


(Ich weiss dass diese Löschvariante nicht gerade sinnvoll ist, die Community hat aber nur etwa 50 Benutzer. Ich werde es aber dann wohl mal mit einem Cronjob ablösen)

danke! so long.
-phore

netcup.de Warum gibt es hier Werbung?
Michael Michael am 29.03.07 15:22

Das es mit Monaten nicht klappt ist ja klar... Du fragst ja nur den aktuellen Tag ab.

Zwei Vorschläge:

1) Nicht %e als Format sondern der Monatstag OHNE führende 0. Ich befürchte er verpeilt es mit der 0 und interpretiert es dann als String. Aber iegentlich ist das %e...

2) Als zusätzliche Bedingung würde ich einbauen, dass nur die Datensätze mit gleichem Jahr und Monat gelöscht werden. Also:
WHERE ... AND DATE_FORMAT(`time`, '%m%Y') = DATE_FORMAT(NOW(), '%m%Y')

Anmerkung: Das klappt natürlich auch nicht bei dem letzten eines Monats. Hier könnteste du noch zusätzliche alle des gleichen jahres aber kleineren monaten löschen

Die Folge es klappt nicht mehr beim letzten eines Jahres => also auch alle kleneren Jahre löschen.


Komplettt anderer Ansatz:
Du wandelst einfach das datum aktaullerTagMinus1.akuellerMonat.Aktuelles Jahr 00:00:00 in einen Timestamp um und löschst alle kleineren ....

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt