Penso che stiamo tutti guardando troppo a fondo un problema MOLTO semplice. Stai già utilizzando SELECT *
nella tua query, quindi stai già recuperando tutte e tre le colonne dalla tua tabella. Quindi ora, tutto ciò che devi fare è aggiungere un'altra cella a ciascuna riga della tabella.
echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";
E per assicurarti di recuperare le righe nell'ordine corretto, dovresti aggiungere un ORDER BY
alla tua richiesta:
SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time
Se non specifichi un ORDER BY
clausola, non hai alcuna garanzia che otterrai i risultati in un ordine particolare.
E un'ultima cosa, stai scorrendo le righe due volte, inutilmente. Sbarazzati del ciclo foreach e inserisci l'eco direttamente all'interno del ciclo while.