Dado que sus resultados ya están ordenados por fecha, puede almacenar la fecha anterior en una variable y crear una nueva tabla cada vez que cambie.
$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>";
Básicamente, lo único que ha cambiado es que el $fdate
se almacena también en $olddate
. Cuando procesamos una nueva fila, si la fecha ha cambiado (es decir, $olddate != $fdate
), creamos una nueva tabla.
Para cada fila en el resultado de mysql, aún generamos una fila de la tabla como antes (es posible que desee realizar algunos cambios, como no incluir más la columna Fecha).