Mysql
 sql >> Base de données >  >> RDS >> Mysql

groupe php mysql par date avec le format aaaa-mm-jj

Vous devez en effet utiliser php pour y parvenir. Mais comme la plupart des systèmes actuels séparent la logique de l'affichage, je n'utiliserais qu'une seule passe et non (NOMBRE DE JOURS + 1) SELECT, et je préparerais un tableau que je pourrai réutiliser plus tard pour mon affichage.

$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'];
}

Et puis quand j'en aurais besoin (via un modèle ou votre "vue")

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

afin qu'il corresponde au format que vous vous êtes défini.

J'espère que cela a aidé