Bezoekers sql statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zero XT

Zero XT

28/05/2009 14:34:00
Quote Anchor link
Beste mensen,

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
ID
session_id
ip
browser
datum


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?
 
PHP hulp

PHP hulp

24/12/2024 00:37:28
 
Hipska BE

Hipska BE

28/05/2009 14:40:00
Quote Anchor link
WHERE datum > NOW() - INTERVAL 24 HOURS
... 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
 
Zero XT

Zero XT

28/05/2009 14:56:00
Quote Anchor link
Thanx maar zo krijg ik niet de desbetreffende uren/dagen/maanden. Voorbeeld van de gegevens:

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
 
Hipska BE

Hipska BE

28/05/2009 15:14:00
Quote Anchor link
Moet ik alles voorsnijden en in je mond steken?

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.
 
Zero XT

Zero XT

28/05/2009 15:21:00
Quote Anchor link
Bedankt.

Dit is nu de SQL statement:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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?
 
Hipska BE

Hipska BE

28/05/2009 15:23:00
Quote Anchor link
Ik stel voor dat je je DB eerst eens meer vult met wat testgegevens (mag fictief zijn). Dan pas kun je daadwerkelijk testen of je query's ook goed werken.

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..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.