Étant donné que vos résultats sont déjà triés par date, vous pouvez simplement stocker la date précédente dans une variable et créer un nouveau tableau à chaque fois que cela change.
$olddate = '';
while($row = mysql_fetch_array($result))
{
$fdate = date('M jS, Y l', strtotime($row['date']));
if ( $olddate != $fdate ) { // date has changed:
// end the previous table (if it exists)
if ( $olddate != '' ) {
echo "</table>"
}
// start the new table. Do something with $fdate here if you like
echo "
<h3>$fdate</h3>
<table border='1'>
<tr class='top'>
...
</tr>";
}
// print a row as before.
echo "<tr>";
....
}
// end the last table
echo "</table>";
Fondamentalement, la seule chose qui a changé est que le $fdate
est également stocké dans $olddate
. Lorsque nous traitons une nouvelle ligne, si la date a changé (c'est-à-dire $olddate != $fdate
), nous créons une nouvelle table.
Pour chaque ligne du résultat mysql, nous générons toujours une ligne de table comme avant (vous voudrez peut-être apporter quelques modifications comme ne plus inclure la colonne Date).