Drukste dag en hoeveel bezoekers
wie kan of wil mij helpen met het volgende.
Bij mijn website registreer ik de bezoekers dmv o.a. host,ip,datum en tijd(deze worden weggeschreven als datetime). Nou zal ik graag via een query de drukste dag dag willen zien en hoevaak de site die dag bezocht is.
Tot nu toe heb ik het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT date_format(datetime, '%Y-%m-%d') as datum, COUNT(date_format(datetime, '%Y-%m-%d')) AS aaantal FROM bezoekers GROUP BY datetime ORDER BY aaantal DESC LIMIT 1";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);
while ($record = mysql_fetch_object($resultaat))
{
echo $record->aaantal." - ".$record->datum."<br>";
}
?>
$sql = "SELECT date_format(datetime, '%Y-%m-%d') as datum, COUNT(date_format(datetime, '%Y-%m-%d')) AS aaantal FROM bezoekers GROUP BY datetime ORDER BY aaantal DESC LIMIT 1";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);
while ($record = mysql_fetch_object($resultaat))
{
echo $record->aaantal." - ".$record->datum."<br>";
}
?>
Via deze query geeft die de datum 2006-10-24 weer met aantal 4. Dit klopt. Maar deze query gaat zoeken op datum en tijd (datetime), en ik wil graag weten hoe ik ga zoeken op alleen datum. Wie weet wat ik hier verkeerd doe.
Alvast bedankt voor de genomen moeite..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT date_format(datetime, 'Y-m-d') as datum, COUNT(date_format(datetime, 'Y-m-d')) AS aaantal FROM bezoekers GROUP BY datetime ORDER BY aaantal DESC LIMIT 1";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);
while ($record = mysql_fetch_object($resultaat))
{
echo $record->aaantal." - ".$record->datum."<br>";
}
?>
$sql = "SELECT date_format(datetime, 'Y-m-d') as datum, COUNT(date_format(datetime, 'Y-m-d')) AS aaantal FROM bezoekers GROUP BY datetime ORDER BY aaantal DESC LIMIT 1";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);
while ($record = mysql_fetch_object($resultaat))
{
echo $record->aaantal." - ".$record->datum."<br>";
}
?>
zonder die % ?
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
Verder nog suggesties?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT
COUNT(kolomnaam) AS aantal,
DATE_FORMAT(kolomnaam, '%d-%m-%Y') AS datumNL
FROM
tabelnaam
GROUP BY (DATE(kolomnaam))
ORDER BY aantal DESC
LIMIT 1
COUNT(kolomnaam) AS aantal,
DATE_FORMAT(kolomnaam, '%d-%m-%Y') AS datumNL
FROM
tabelnaam
GROUP BY (DATE(kolomnaam))
ORDER BY aantal DESC
LIMIT 1
Tips:
- Gebruik geen kolomnamen met dezelfde naam als een functie of datatype. De naam 'datetime' slaat dus nergens op, dat is een data-type.
- Gebruik geen DATE_FORMAT() wanneer je de datum in het formaat yyyy-mm-dd nodig hebt, gebruik dan de functie DATE(). Dan blijft MySQL de boel als datum zijn en niet als een string.
- Waarom doe je niets aan foutafhandeling? Dat is de basis!!! Blijkbaar wil je problemen hebben, dat is je dan ook prima gelukt...
- mysql_fetch_object() is onvoorstelbaar langzaam en de slechtste fetch-functie die er vinden is. Gebruik mysql_fetch_assoc().
Query niet getest...