De topic titel is een beetje onduidelijk maar ik hoop dat jullie me wel kunnen helpen.
Ik ben met een CMS bezig (een vrij groot CMS, en we lopen tegen het einde aan :)). Nu is er iets wat we absoluut niet mogen vergeten: namelijk analytics. Dit doen we o.a. met google analytics en new relic. Maar om de gebruikers van het CMS ook feedback te kunnen geven hoe het met de site gaat zijn we ook een kleine PHP oplossing aan het schrijven.
Nu is het zo dat bij elke pagina view een set van gegevens de database ingestuurd wordt. Voor deze vraag zijn de velden 'ip' en 'agent' het belangrijkst.
Nu willen wij een realtime overzicht hebben van actieve gebruikers van de laatste 10 minuten. Echter kom ik er niet helemaal uit hoe ik deze query moet opzetten.
De bedoeling is dat je met elk ip adres en met elke user agent. Bij elkaar als 1 gebruiker word gezien.
op het moment dat 1 van deze 2 anders is dan ben je een andere gebruiker.
Nu moeten we dus een lijst met deze gebruikers uit de database trekken maar het lukt me echt niet.
De database ziet er uber versimpelt dus zo uit:
-----------------------
|id | ip | agent |
| 1 : 84.. | moz.. |
-----------------------
De query die ik op het moment heb:
SELECT * FROM `analytics` where date > date_sub(now(), interval 10 minute) group by agent,ip ORDER BY `id` DESC
Deze geeft op het moment keurig het goede aantal records weer, maar niet de goede hij geeft me namelijk 2 maal de zelfde terug. Echter klopt de telling wel (dus als ik bijv. op mijn mobiel, en op mijn laptop kijk zegt hij netjes 2, maar laat hij 2 keer mijn laptop zien als return)
Weet iemand wat ik fout doe? En kan mij eventueel helpen?
Bij voorbaat dank!