Jag tror att vi alla tittar för hårt på ett MYCKET enkelt problem. Du använder redan SELECT *
i din fråga, så du hämtar redan alla tre kolumnerna från din tabell. Så nu, allt du behöver göra är att lägga till ytterligare en cell till varje rad i din tabell.
echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";
Och för att vara säker på att du hämtar dina rader i rätt ordning bör du lägga till en ORDER BY
till din fråga:
SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time
Om du inte anger en ORDER BY
klausul har du ingen garanti för att du får resultaten i någon speciell ordning.
Och en sista sak, du går igenom raderna två gånger, i onödan. Bli av med foreach loop och sätt ekot direkt inuti while loopen.