Hallo, voor een changelog script wil ik per dag gecategoriseerd de logs selecteren.
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:

<?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.";
}
?>

Dit werkt echter niet, ik krijg de volgende error:

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
Met die DISTINCT krijg je maar 1 record voor een bepaalde dag en dat is niet wat je wilt. Je wilt resultaten per dag zien.

Je zult dus in je query moeten werken met:

GROUP BY DATE_FORMAT(datum, '%Y-%m-%d')
Kan je misschien iets meer uitleggen?
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:

$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?

Reageren