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";
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
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]