Mysql
 sql >> Datenbank >  >> RDS >> Mysql

php mysql Gruppieren nach Datum im Format JJJJ-MM-TT

Sie sollten in der Tat PHP verwenden, um dies zu erledigen. Aber da die meisten aktuellen Systeme die Logik von der Anzeige trennen, würde ich nur einen Durchgang und keine (NUMBER OF DAYS + 1) SELECTs verwenden und ein Array vorbereiten, das ich später für meine Anzeige wiederverwenden kann.

$query = "SELECT DATE_FORMAT(date, '%M %D') as d, name FROM yourtable ORDER BY date";
$foo=array();
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
    //some logic to test if it's safe to add the name
    $foo[$row['d']][]=$row['name'];
}

Und dann, wenn ich es brauche (über eine Vorlage oder Ihre "Ansicht")

foreach($foo as $date => $events) {
    echo $date . ":\n\t";          
    echo implode(",\n\t", $events);
    echo "\n";
}

damit es in das von Ihnen festgelegte Format passt.

Hoffe das hat geholfen