Hallo allemaal,

Met behulp van onderstaande query toon ik alle UNIEKE bezoekers van mijn site per dag.
Nu wil ik hier graag een telling aan toevoegen die het resultaat geeft van het aantal malen dat deze bezoeker vandaag de site bezocht heeft:


$sql = "
SELECT 
   * 
FROM 
   sys__logfile 
WHERE 
   robot = 0 AND 
   YEAR(datum) = '$nJaar' AND MONTH(datum) = '$nMaand' AND DAY(datum) = '$nDag' 
GROUP BY 
   ipadres 
ORDER BY 
   datum";


Hoe moet ik dit doen??

George
SELECT *, COUNT(ipadres) as aantal FROM sys__logfile
WHERE robot = 0 AND YEAR(datum) = '$nJaar' AND MONTH(datum) = '$nMaand' AND DAY(datum) = '$nDag'
GROUP BY ipadres
ORDER BY datum
Nooit select * combineren met count()
Ik kan vanaf hier niet ruiken welke velden hij nodig heeft he :)
Wat jullie niet konden weten is het volgende:

1. Ik leg elke beweging vast
2. Ik noteer het php-sessienr
3. Ik noteer het ipadres
Daarnaast nog meer maar dat doet niet ter zake.

De gegeven oplossing geeft nu het aantal page-views.
Ik ben eigenlijk op zoek naar het aantal hits. Dus de telling zou op basis van het unieke sessienr moeten plaatsvinden.

SELECT
	ipadres,
	COUNT(DISTINCT sessienr)
FROM
	sys__logfile
WHERE
	datum BETWEEN '$year-$month-$day 00:00:00' AND '$year-$month-$day 23:59:59'
GROUP BY ipadres

Ik heb er gelijk ook even een WHERE clause van gemaakt die indexen kan gebruiken.
Deze geeft als foutmelding dat de subquery meer dan 1 regel teruggeeft


SELECT 
   * ,
(SELECT COUNT(b.id) FROM sys__logfile as b GROUP BY b.sessie)
FROM 
   sys__logfile 
WHERE 
   robot = 0 AND 
   YEAR(datum) = '2015' AND MONTH(datum) = '3' AND DAY(datum) = '24' 
GROUP BY 
   ipadres 
ORDER BY 
   datum


[size=xsmall]Toevoeging op 24/03/2015 20:13:44:[/size]

Ger,

Hoe simpel kan het zijn.

Bedankt !!

Reageren