stefaan
24-12-2006, 21:51
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
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