Poiché i tuoi risultati sono già ordinati per data, puoi semplicemente memorizzare la data precedente in una variabile e creare una nuova tabella ogni volta che cambia.
$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>";
Fondamentalmente l'unica cosa che è cambiata è che il $fdate
è memorizzato anche in $olddate
. Quando elaboriamo una nuova riga, se la data è cambiata (cioè $olddate != $fdate
), creiamo una nuova tabella.
Per ogni riga nel risultato di mysql generiamo ancora una riga di tabella come prima (potresti voler apportare alcune modifiche come non includere più la colonna Data).