Per dag een aantal tijden selecten
Dus per dag zijn er 1 of meer items aan de database toegevoegd en die wil ik selecten met de datum erboven.
Ik heb DATETIME gebruikt voor het veld datum en heb nu het volgende script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
//Per dag selecten uit database
$sel_data = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS dag FROM changelog ORDER BY dag DESC";
$sel_data_r = mysql_query($sel_data) or die (mysql_error());
//Kijken of er resultaten zijn
if(mysql_num_rows($sel_data_r) > 0) {
//Ja, dagen weergeven
while($dag = mysql_fetch_array($sel_data_r)) {
echo "<b>".$dag['dag']."</b><br>";
//Per dag selecten wat voor logs er zijn
$sel_log = "SELECT id, DATE_FORMAT(datum, '%H:%i:%s') AS tijd, change, versie FROM changelog WHERE DATE_FORMAT(datum, '%d-%m-%Y') = ".$dag['dag']." ORDER BY tijd DESC";
$sel_log_r = mysql_query($sel_log) or die (mysql_error());
while($log = mysql_fetch_array($sel_log_r)) {
echo $log['tijd']." -> ".$log['change']." (".$log['versie'].")<br>";
}
}
}
else {
echo "Er zijn geen resultaten.";
}
?>
//Per dag selecten uit database
$sel_data = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS dag FROM changelog ORDER BY dag DESC";
$sel_data_r = mysql_query($sel_data) or die (mysql_error());
//Kijken of er resultaten zijn
if(mysql_num_rows($sel_data_r) > 0) {
//Ja, dagen weergeven
while($dag = mysql_fetch_array($sel_data_r)) {
echo "<b>".$dag['dag']."</b><br>";
//Per dag selecten wat voor logs er zijn
$sel_log = "SELECT id, DATE_FORMAT(datum, '%H:%i:%s') AS tijd, change, versie FROM changelog WHERE DATE_FORMAT(datum, '%d-%m-%Y') = ".$dag['dag']." ORDER BY tijd DESC";
$sel_log_r = mysql_query($sel_log) or die (mysql_error());
while($log = mysql_fetch_array($sel_log_r)) {
echo $log['tijd']." -> ".$log['change']." (".$log['versie'].")<br>";
}
}
}
else {
echo "Er zijn geen resultaten.";
}
?>
Dit werkt echter niet, ik krijg de volgende error:
Quote:
Er is iets fout in de gebruikte syntax bij 'change, versie FROM changelog WHERE DATE_FORMAT(datum, '%d-%m-%Y'
Nu is mijn vraag hoe ik per dag de items kan selecten.
Ik hoop dat het een beetje duidelijk is uitgelegd en alvast bedankt voor de hulp =)
Thomas
Je zult dus in je query moeten werken met:
GROUP BY DATE_FORMAT(datum, '%Y-%m-%d')
Dat DISTINCT had ik gebruikt om kopjes te maken voor de dagen, tenminste dat is de bedeling :P
14-02-2007
Item1
Item2
Item3
13-02-2007
Item1
Item2
Zoiets wil ik dus en ik heb GROUP BY nu zo verwerkt:
Code (php)
1
$sel_log = "SELECT id, DATE_FORMAT(datum, '%H:%i:%s') AS tijd, change, versie FROM changelog GROUP BY DATE_FORMAT(datum, '%d-%m-%Y') ORDER BY tijd DESC";
Maar ook dat geeft een error, wat doe ik fout?