![]() |
SQL-Query für Counter
Ich suche das SQL-Statement um die Anzahl an Einträgen von einem Tag zu bekommen.
Also der Tag an dem die meißten Benutzer online waren. Tabelle: Counter_ID (PK), Counter_Time, Counter_IP, Counter_Referer ich denk das würde irgendwie mit SELECT MAX(Count_ID) WHERE und dann was mit BETWEEN aber wie genau weiß ich ned. Counter_Time ist als Unixtimestamp angegeben. |
select count(date (wo auch immer das Datum drinn sein mag)) as hits from was auch immer
group by date(wo auch immer das Datum drinn sein mag) order by hits; pong |
danke erstmal.
"wo auch immer das Datum drinn sein mag" ? wie soll ich das verwirklichen? |
Zitat:
pong |
Keine Ahnung wie performant das ist, erste Lösung dir mir eingefallen ist:
Um zb. die Zugriffszahl für jeden Tag auszuwerten: SELECT DATE_FORMAT( SpalteDatum, '%d.%m.%Y' ) , count( SpalteDatum ) FROM datumstabelle GROUP BY DATE_FORMAT( SpalteDatum, '%d.%m.%Y' ) ORDER BY SpalteDatum Wenn du für Stunde/Woche/Monat/Jahr/was-auch-immer auswerten willst, musst du den Pattern im Date_Format ändern, siehe hierzu: http://dev.mysql.com/doc/refman/4.1/...functions.html mfg T. |
Ich wäre für eine etwas kürzere Variante
"SELECT COUNT(*) c, SUBSTR(Counter_Time, 1,10) t ". "FROM `tabelle` ". "GROUP BY TO_DAYS(Counter_Time) ". "ORDER BY c ASC " sofern Counter_Time als Datetime gespeichert ist, sonst bekommst für das substr nix richtiges |
Das Datum ist als UNIX-Time stamp (int) gespeichert!
|
Zitat:
klappt der Ausdruck ansonst? |
habs mal kurz getestet, so klappt es mit unix timestamps:
PHP-Code:
|
Zitat:
|
Zitat:
mein query zählt tatsächlicht nur alle einträge mit einem timestamp, welche am selben tag erstellt wurden. du kannst ja gerne beide testen, ich habs gemacht :p |
Zitat:
Jetzt bin ich wieder gescheider :) |
hey leutz
danke für eure hilfe. bin leider erst heute dazugekommen das auszuprobieren. irgendwie funktioniert das nicht richtig: ich hab zb folgendes: Code:
759 24 Dec 2006, 17:21 83.211.88.93 Es sind aber sicher mehr. Wo hackt es da? |
am besten einfach dein php script und sql dump anhängen. read only sql zugang reichen auch, falls der dump zu groß ist.
|
PHP-Code:
|
query und db scheint ok zu sein, denke der fehler, wenn immer nur 5 ausgegeben wird, muss irgendwo im php code sein.
|
PHP-Code:
|
ich behaupte mal da ist kein für mich erkennbarer fehler. vermute aber mal, wenn immer 5 ausgegeben wird, stimmt etwas mit deiner sql query class nicht. ich denke mal das wird __FILE__ oder __LINE__ anstelle des query results ausgegeben. steht der query zufällig in line 5? ;) versuch es doch mal mit einer sauberen sql abfrage, und ausgabe.
|
keine angst das passt schon.
das funktioniert überall wunderbar. das is blos eine funktion die ggf. einen sql-error ausgibt und mir mit __FILE__ und__LINE__ sagt wo der error is. |
dann kann es nur noch eine wasserader sein. hab es anhand einer vbulletin 3 datenbank und der user table mit joindate getestet, klappt wunderbar.
|
Ich hab erst jetzt wieder Zeit gefunden daran weiter zu grübeln. Aber es hat was gebracht.
Hier nun die funktionierende Lösung: PHP-Code:
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag