Hoe kan ik m.b.v. mysql en php de totaal aantal bezoeken per dag nummen?

En dan zo:

12 december 2007 : 20
13 december 2007 : 305
14 december 2007 : 502
enz...

Ik heb een table die `teller` heet en een kolom [date] met data, `datum`.

SELECT 
    datum,
    COUNT(*) AS aantal
FROM teller
GROUP BY datum

Zoiets?
<?php
$query = "SELECT datum FROM logs WHERE datum is CURDATE()";

$res = mysql_query($query);

if(mysql_num_rows($res) > 0)
{
//datum bestaat al.

$new_query = "UPDATE logs SET aantal=aantal+1 WHERE datum=CURDATE()";
}
else
{
$new_query = "INSERT INTO logs(datum, aantal) VALUES(CURDATE(), 1";
}
mysql_query($new_query);

?>

Zoiets zou het moeten zijn. Je moet natuurlijk wel ff alle vars controleren.
Ik heb je script verbeterd, jurgen, maar het werkt nog niet helemaal. Hij doet het wel.

Dit is het probleem: Hij neemt nu de datum van vandaag en doet bij de dag er 1 bij. Dus bij aantal staat nu 20070618

Ik pas hem ff aan , als het niet lukt hoor je nog van me!

TnX

==================
: Hij werkt nu, maar hij telt niet de unieke bezoeken! moet ik dan nog een table aanmaken of kan het ook anders. Met een sessie/cookie ofzow.
Je zult sowieso een tabel moeten hebben waarin je alle bezoeken registreert. Anders kun je daar natuurlijk nooit statistieken van weergeven:

visits
------
id
ip_adres
datum

Vervolgens kun je bijvoorbeeld per datum het aantal unieke bezoeken ophalen.

Ik zou er niet voor kiezen om de manier te gebruiken die Jurgen gebruikt omdat je hier echt alleen het aantal hits mee weet. Je kunt bijvoorbeeld nooit het aantal bezoeken per uur uitrekenen aangezien alles per dag gaat.

Als jij zoals ik hierboven al beschreef elke visit opslaat in een apart record, kun je daar hele mooie statistieken uithalen.
Zou je deze kunne `vertalen`.

SELECT
datum,
COUNT(*) AS aantal
FROM teller
GROUP BY datum
- Selecteer de waarde uit de 'datum' kolom
- tel het aantal records en selecteer dat als 'aantal'

- uit de tabel 'teller'
- groepeer op datum.

Door die GROUP BY zorg je ervoor dat er gegroepeerd wordt op de datum kolom. Dat betekent dus dat COUNT() het aantal records met dezelfde datum telt.

Reageren