Hi,
ich habe folgendes Problem. Ich werte logfiles aus und zähle wieviele user an tag x online waren. D.h. es gibt z.b. folgendes Ergebnis:
datum anzahl user
12.12.08 12
14.12.08 19
...
Mein Problem ist, ich möchte die abfrage nun so anpassen, dass er die datumsangaben wo niemand online war, also kein eintrag in den logfiles vorhanden ist, mit der zahl 0 für die anzahl der user ausgibt
also so:
datum anzahl user
12.12.08 12
13.12.08 0
14.12.08 19
...
wie geht das? habe gesucht ohne ende aber nix gefunden
hoffe ihr habt ne idee
Datumsausgabe Problem Mysql
-
-
Da du die Daten in der DB hast, musst du in der Ausgabeschleife prüfen, ob dir da Tage fehlen.
-
wie kann ich das machen? habe da überhaupt keinen plan
-
Wie hast du das Datum in der DB stehen? Ich hoffe, im Format date oder date_time?
habe da überhaupt keinen plan
Muss man auch nicht. Einfach mal etwas logisch denken reicht hier schon. -
es steht in folgendem format in der db: "2006-10-03 12:17:49"
würde mich freuen wenn du mir mal nen beispiel befehl aufschreiben könntest -
Nö. ein Beispiel bekommst du nicht, aber ein paar Tipps:
- Lege das Startdatum, ab wann du die Ausgabe haben willst, in einer Variablen fest.
- Lese das Datum geschickt aus, dazu empfehle ich die Doku von MySQL bzgl. date_format
- Baue die Ausgabeschleife
- Prüfe das Datum aus der DB mit deinem festgelegtem Datum
- Wenn eine Lücke vorhanden ist, eine Schleife bauen, wo du die Daten mit 0 ausgibst
- Pro Schleifendurchlauf für die Ausgabe dein festgelegtes Datum erhöhen.
That's it. Vielleicht versuchst du das einfach mal mit einfachen Zahlen, damit dir die Logik klar wird. -
und das soll alles in einer mysql abfrage gehen? wie ich das mit php mache ist mir klar, aber das soll alles in der mysql abfrage erfolgen
-
Mit einer SQL-Abfrage wird das wohl nicht gehen, deshalb hatte ich geschrieben:
ZitatDa du die Daten in der DB hast, musst du in der Ausgabeschleife prüfen, ob dir da Tage fehlen.
-
ich will dich nicht nerven, aber wie geht das????
-
aber wie geht das????
wie ich das mit php mache ist mir klar
Ja wat denn nu?Ein Beispiel mit Zahlen:
PHP
Alles anzeigen<?php $data = array(2, 5, 6, 7, 9, 15); $start = 1; foreach ($data as $value) { if ($start < $value) { while ($start < $value) { echo "$start nicht im Array<br>\n"; $start++; } } echo "$value im Array<br>\n"; $start++; } ?>
Und jetzt nicht sagen "Ich hab' ja kein Array"! Damit hättest du zwar recht, aber du hast ein Schleife mit Daten, die, wenn sie richtig sortiert sind, genau dafür einsetztbar sind. -
verstehs net, gib doch der spalte anzahl einfach den standart wert 0, dann hat die spalte auch immer 0 wenn es keine besucher gibt
mfg
-
verstehs net, gib doch der spalte anzahl einfach den standart wert 0, dann hat die spalte auch immer 0 wenn es keine besucher gibt
mfg
Das ist für die Zukunft sinvoll, hilft ihm aber rückwirkend nicht.
Ich verstehe ehrlich gesagt nicht, warum die Leute Datetime benutzen. Mit unix-timestamps lässt es sich doch viel einfacher rechnen, oder nicht? In diesem Fall könnte man dann in der Ausgabeschleife prüfen, ob zwei aufeinanderfolgende Einträge z.B. mehr als 25 Stunden auseinanderliegen. Dann wüsste man, wo Tage fehlen.
-
richtig man verwendet den timestamp...
naja doch das hilft ihn doch immer noch, die leeren werden doch dann zu 0, zudem kann er ein massen update machen
mfg