Bezoekers sql statement
Ik probeer mijn bezoekersteller te voorzien van grafieken. Nu heb ik netjes een grafiek classe gemaakt die de gegevens netjes verwerkt alleen zit ik vast bij de SQL statements.
Dit is mijn database tabel:
Tabel bezoekers:
Nu wil ik de volgende eruit halen
Laatste 24 uur:
Per uur wil ik het aantal unieke bezoekers krijgen met daarbij het desbetreffende uur.
Laatste 7 dagen:
Per dag wil ik het aantal unieke_bezoekers krijgen en de dag zoals Woensdag of Donderdag
Laatste 12 maanden:
Per maand wil ik het aantal unieke_bezoekers krijgen en de desbetreffende maand
Laatste 24 dagen:
Per dag wil ik het aantal unieke_bezoekers krijgen en de datum van die dag zonder de maand of jaar
Wie kan mij helpen om dit voor elkaar te krijgen?
... 7 DAYS
... 12 MONTHS
... 24 DAYS
en voor unieke bezoekers nog een GROUP BY ip (of session_id als je dit een unieke bezoeker vindt)
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
uur 1: 20 bezoekers
uur 2: 52 bezoekers
uur 3: 33 bezoekers
etc.
of
Woensdag: 200 bezoekers
Donderdag: 300 bezoekers
etc.
Gewijzigd op 01/01/1970 01:00:00 door Zero XT
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Om dat van die uren te doen bijvoorbeeld:
SELECT COUNT(*) AS aantal, HOUR(datum) AS uur FROM .. WHERE datum > NOW() - INTERVAL 24 HOURS GROUP BY HOUR(datum), ip (of session) ORDER BY datum (ASC of DESC)
Deze is niet getest, maar zou ongeveer dit moeten zijn.
Dit is nu de SQL statement:
Code (php)
1
SELECT COUNT(*) AS aantal, HOUR(datum) AS uur FROM bezoekers WHERE datum > NOW() - INTERVAL 24 HOUR GROUP BY HOUR(datum), session_id ORDER BY datum DESC
Nu zitten er op het moment 3 records in de tabel. Dus ik krijg nu ook 3 records terug.
Is er een mogelijkheid dat ik toch de volle 24 uur vol kan maken met SQL maar dat er dan de waarde 0 mee word gegeven als aantal bezoekers of kan ik dit beter afhandelen door php?
De DB zal natuurlijk enkel rijen genereren op de uren/datums wanneer er effectief iets van in de DB staat. Lijkt me wel net zo logisch..