sql >> Database >  >> RDS >> Mysql

php mysql groeperen op datum met de indeling jjjj-mm-dd

Je moet inderdaad php gebruiken om dit voor elkaar te krijgen. Maar aangezien de meeste van het huidige systeem logica en display scheiden, zou ik slechts één pas gebruiken en niet (AANTAL DAGEN + 1) SELECT, en een array voorbereiden die ik later kan hergebruiken voor mijn display.

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

En dan wanneer ik het nodig zou hebben (via een sjabloon of uw "weergave")

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

zodat het past in het formaat dat u voor uzelf hebt ingesteld.

Ik hoop dat dat heeft geholpen



  1. Introductie van nieuwe functie - Spotlight Cloud-rapporten

  2. PostgreSQL 9.0.4 volledig verwijderen van Mac OSX Lion?

  3. MySQL group_concat met select binnen select

  4. Getypte resultaten ophalen uit ActiveRecord onbewerkte SQL