Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Befehl für "Gestern online"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL Befehl für "Gestern online"

    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?


  • #2
    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.

    Kommentar


    • #3
      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


      • #4
        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


        • #5
          Zitat von Dammi
          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...
          Aha, jetzt kapier ich! Kann ich also auch den Datensatz von Gesamt benutzen! Muss ich mich nurnoch durch die Welt der Befehle schlagen!

          edit:
          Wahrscheinlich falsch, aber heißt es dann
          PHP-Code:
          <?php
          BETWEEN curdate
          () AND curdate() - 1
          ?>
          ?

          Kommentar


          • #6
            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

            Lädt...
            X