Ich programmiere gerade eine Seite und bin nun an den Statistiken. Das ist eigentlich kein Problem, Sachen wie "Gerade online" und "Insgesamt online" klappen ohne Probleme. Aber wie klappt das, wenn ich alle User aufzählen will, die gestern online waren. Ich hab mir überlegt, immer 24 Stunden nach dem ersten Eintrag zu löschen, aber er soll ja immer löschen, wenn es 0 Uhr ist. Wie ist der WHERE-Befehl für diese Anweisung? Oder macht man das komplett anders?
Ankündigung
Einklappen
Keine Ankündigung bisher.
MySQL Befehl für "Gestern online"
Einklappen
Neue Werbung 2019
Einklappen
X
-
Stichworte: -
-
Warum sind immer alle so scharf darauf, die Datensätz flott zu löschen? Den Platz gewinnt ihr eh erst zurück, wenn die Tabelle optimiert wird. Mach das doch irgendwann, wenn Deine Bedingung ganz einfach aussehen kann, weil das Alter der betroffenen Datensätze bereits jenseits von Gut und Böse liegt.
Du willst die Datensätze haben, die zwischen (heutiges Datum - 1 Tag) und (heutiges Datum - 1 Sekunde) liegen. Heutiges Datum heißt curdate(). Wenn ein Datum wie ein Datetime eingesetzt wird, ist die Zeit jeweils 0 Uhr.
(heutiges Datum - 1 Tag) ist also gestern 00:00:00 und (heutiges Datum - 1 Sekunde) ist gerstern 23:59:59.
BETWEEN x AND y und http://dev.mysql.com/doc/mysql/de/da...functions.html von mysql helfen Dir da weiter.
-
Ich will ja nur die User aus der Datenbank löschen, damit ich weiß, wieviele Online sind!
Irgendwie komm ich mit deiner Erklärung und der Seite nicht klar, sorry!
Kommentar
-
Naja...
Bruchpilot meint, dass du nicht löschen sollst um etwas heraus zu finden, sondern geschickter abfragen sollst. "Alle von gestern" ist nun mal alles von "HEUTE 00:00:00 minus 1Tag" bis "HEUTE 00:00:00". Und "Alle von heute" ist "HEUTE 00:00:00" bis "Jetzt". Und "Gerade online" ist "Jetzt minus 5min." bis "Jetzt".
Ich hoffe ich hab dich jetzt nicht gänzlich verwirrt...
Kommentar
-
Zitat von DammiNaja...
Bruchpilot meint, dass du nicht löschen sollst um etwas heraus zu finden, sondern geschickter abfragen sollst. "Alle von gestern" ist nun mal alles von "HEUTE 00:00:00 minus 1Tag" bis "HEUTE 00:00:00". Und "Alle von heute" ist "HEUTE 00:00:00" bis "Jetzt". Und "Gerade online" ist "Jetzt minus 5min." bis "Jetzt".
Ich hoffe ich hab dich jetzt nicht gänzlich verwirrt...
edit:
Wahrscheinlich falsch, aber heißt es dann
PHP-Code:<?php
BETWEEN curdate() AND curdate() - 1
?>
Kommentar
-
machst einfach in ner tabelle 2 datensätze, eines für heute online, eines für gestern online!
dann um 24 uhr starteste den cronjob (www.cronjob.de) und lässt ihn ein scirpt ausführen, dass den datensatz von heute online updatet und auf null setzt, und welches den datensatz gestern online updatet und mit den zahlen von $heute füttert
Kommentar
Kommentar