[code]
<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);

//onderstaand bestandje zorgt voor de verbinding met de database.
require_once 'connect.php';
$sql_ansi = "SET SESSION sql_mode = 'ANSI'";
if(!mysql_query($sql_ansi)){
	echo 'werkt niet in ANSI modus';
	}
//query voor bekijken of er al iemand met dit ip eerder op de dag online is geweest
$getsql = "
	SELECT 
		id 
	FROM 
		visitors 
	WHERE 
		ip = '".$_SERVER['REMOTE_ADDR']."' 
	AND 
		DATE(online) = CURDATE() LIMIT 1";
		//Limit 1 toegevoegd, omdat die als er 1 is gevonden, niet verder hoeft te zoeken.
if($getresult = mysql_query($getsql)){
	if(mysql_num_rows($getresult) == 1){
		//is al eerder online geweest vandaag, alleen tijd aanpassen
		$statsql = "
		UPDATE 
			visitors 
		SET 
			online = NOW() 
		WHERE 
			ip = '".$_SERVER['REMOTE_ADDR']."' 
		AND 
			DATE(online) = DATE(NOW())";
			
		}
	else{
		//nog niet eerder online geweest, maak een nieuwe regel aan
		$statsql = "
		INSERT INTO 
			visitors 
				(ip, online) 
			VALUES 
				('".$_SERVER['REMOTE_ADDR']."',NOW())";
		}
	if(!mysql_query($statsql)){
		echo 'Gegevens niet bijgwerkt wegens een fout in de SQL code.';
		}
	}


//---------- HIER IS ALLEEN VOOR WEERGAVE VAN STATISTIEKEN ------
// hier worden het aantal bezoekers geteld die op je site zijn geweest. Een IP telt maar 1 keer per dag
$sql_unique = "
	SELECT 
		COUNT(id) AS number 
	FROM 
		visitors";
// deze query haalt het aantal bezoekers op dat in de afgelopen 5 minuten online was		
$sql_now_online = "
	SELECT 
		COUNT(id) AS now_online 
	FROM 
		visitors 
	WHERE 
		TIMEDIFF(NOW(),online) < '00:10:00'";
// deze query haalt het maximum aantal bezoekers op een dag op + de bijbehorende datum. -> Stel dat er 2 dagen zijn dat het maximum is bereikt, hier geeft die de laatste datum weer. (meest recente)		
$sql_max_day = "
	SELECT 
		COUNT( id ) AS unique_day, 
		DATEDIFF(NOW(),DATE(online)) AS date 
	FROM 
		visitors 
	GROUP BY 
		DATE( online ),
		DATEDIFF(NOW(),DATE(online))
	ORDER BY 
		unique_day DESC, 
		online DESC 
	LIMIT 
		1";
// Deze query bepaald het aantal dagen dat de teller actief is.
$sql_count_avg = "
	SELECT 
		DATEDIFF( CURDATE( ) , MIN( DATE( online ) ) ) AS days
	FROM 
		visitors";
if($result_unique = mysql_query($sql_unique)){
	if(mysql_num_rows($result_unique) >= 1){
		$row_unique = mysql_fetch_assoc($result_unique);
		}
	else{
		$row_unique['number'] = 0;
		}
	}
if($result_now_online = mysql_query($sql_now_online)){
	if(mysql_num_rows($result_now_online) >= 1){
		$row_now_online = mysql_fetch_assoc($result_now_online);
		}
	else{
		$row_now_online['now_online'] = 0;
		}
	}
if($result_max_day = mysql_query($sql_max_day)){
	if(mysql_num_rows($result_max_day) >= 1){
		$row_max_day = mysql_fetch_assoc($result_max_day);
		}
	else{
		$row_max_day['unique_day'] = 0;
		}
	if($row_max_day['date'] == 0){
		$row_max_day['date'] = 'Vandaag';
		}
	elseif($row_max_day['date'] == 1){
		$row_max_day['date'] = $row_max_day['date'].' dag geleden';
		}
	else{
		$row_max_day['date'] = $row_max_day['date'].' dagen geleden';
		}
	}
if($result_count_avg = mysql_query($sql_count_avg)){
	if(mysql_num_rows($result_count_avg) >= 1){
		$row_count_avg = mysql_fetch_assoc($result_count_avg);
		}
	else{
		$row_count_avg['days'] = 0;
		}
	}
?>
<strong>Datum:</strong> <?php echo date('Y-m-d') ?><br />
<strong>Nu online:</strong> <?php echo $row_now_online['now_online']; ?><br />
<strong>Totaal bezoekers:</strong> <?php echo $row_unique['number']; ?><br />
<strong>Max per dag:</strong> <?php echo $row_max_day['unique_day']; ?><br />
<strong>Wanneer:</strong> <?php echo $row_max_day['date']; ?><br />
<strong>Gemiddeld:</strong> <?php 
// dit was overigens ook prima via SQL te berekenen, maar deze gegevens had ik reeds verkregen, vandaar via de PHP manier
echo round($row_unique['number']/$row_count_avg['days']); ?><br />
<strong>Dagen online:</strong> <?php echo $row_count_avg['days']; ?>
[/code]