Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Tagesstatistiken erstellen

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55

    Tagesstatistiken erstellen

    Liebe Leute!

    Nachdem die Bescherung vorbei ist, möchte ich noch meine Überlegungen zu einem Problem loswerden, das mich zur Zeit beschäftigt.

    Ich habe für eine Intranetapplikation eine Logtabelle, die das Datum (MySQL-Timestamp), eine UserID und den Status (Login, Logout) speichert. Nun möchte ich die Tabelle graphisch auswerten, z.B mit einem Balkendiagramm für jeden Tag im Monat. Es ist ja kein Problem, das ganze mit COUNT() und GROUP BY mit einem Query für das ganze Monat zu machen.
    Nur kann es vorkommen, dass an einem Sonn- oder Feiertag kein Login stattfindet und dann dieser Tag bei dem Query einfach fehlen würde.

    Mir fallen dazu drei Lösungen ein. Wie würdet ihr das lösen?

    a) Es gibt in MySQL eine Datumsfunktion, die alle Tage eines Monats ausspuckt und mit einem Join auf die Logtabelle bekomme ich für leere Tage den Wert 0. Diese Datumsfuktion hat MySQL scheinbar aber nicht bzw. ich wüsste nicht, wie man das über eine SQL-Query lösen könnte.
    Wahrscheinlich aber die sauberste Lösung.

    b) Die Query mit den Löchern mit PHP nachbearbeiten und das Array mit den fehlenden Tagen befüllen.
    Ein Query, einen Loop in PHP und ein paar Array-Funktionen

    c) Rekursiv. Mit mkdate das jeweilige Tagesdatum in einem Monatsloop ausgeben lassen und für jeden Tag ein SQL-Query loslassen.
    Einfach zu programmieren, aber wohl nicht so sauber.

    Wie macht ihr das? Hab ich noch wo eine Lösung übersehen?

    Danke und frohe Festtage...

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

  2. #2
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von stefaan Beitrag anzeigen
    Wie macht ihr das? Hab ich noch wo eine Lösung übersehen?

    Grüße, Stefan
    Geht auch einfacher..

    Feiertage sind Länderabhängig (Bundesländer, Staaten).
    Bei deinem Login fragst Du zuerst z. B. mit PHP, Perl ab ob es sich
    um einen Sonntag handelt, und danach deine Tabelle o. Datei mit den
    den ganzen Feiertagen. Die kannst du ja nach Ländern speichern,
    sortieren usw.

    So kannst du ganz bequem deine Feiertage bearbeiten, erweitern und
    mußt nicht mit irgendwelchen Löchern arbeiten.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55
    Servus!

    Danke für die Anregung, nur so kann ich es auch nicht machen.
    Es _kann_ Tage geben, wo sich keiner einloggt (wenig Betrieb, Chef nicht da, etc). Es kann auch unter der Woche vorkommen, dass sich an einem Tag einmal keiner einloggt...
    Daher können Lücken an beliebigen Tagen entstehen...

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.09.2004
    Beiträge
    31
    ich würde Lösung (c) nehmen - ist vermutlich nicht die eleganteste, vermutlich aber die flexibelste... ausserdem dürfte der entstandene Code für jeden verständlich sein - und damit einfacher zu pflegen...

  5. #5
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Falls die Möglichkeit besteht:
    Jede Nacht um 8:00 per Cron die Werte aufrechnen lassen und in eine extra Tabelle schreiben. Inbesondere natürlich bei großen Datenmengen sinnvoll.
    Dann hast du jeden Tag ein Datensatz.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  6. #6
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55
    Servus!

    Danke für die Anregungen...
    Da sich die Anmeldungen im zweistelligen Bereich halten werden, ist der Cronjob wohl etwas zu überdimensioniert. Ich werde wohl bei Lösung (c) bleiben, die ich mir in einer anderen Sache für eine quick-n-dirty-Lösung schon zusammengebastelt habe...

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •