Вы можете сделать что-то вроде этого:
$query="SELECT * FROM table WHERE stuff = "otherstuff"";
$res=$conn->query($query);
while($row=$res->fetch_assoc()){
echo "<table>";
echo "<tr><th>".$row['date']."</th></tr>"; //here you get each date filtered by rows
echo "<tr>";
echo "<td>".$row['stuff']."</td>"; //data1
echo "</tr>";
echo "<tr>";
echo "<td>".$row['otherstuff']."</td>"; //data2
echo "</tr>";
echo "</table>";
}
Я бы рекомендовал while () вместо foreach () при печати содержимого запроса myslq в таблице html5. Он перебирает while () и генерирует таблицу для каждой строки.
Ваша таблица должна выглядеть следующим образом:
Date Stuff Otherstuff Morestuff
Monday data1 data2 data3 //this one gets an own table
Tuesday XY XY XY //this one gets the next table