Con:

codice:
SELECT * FROM tabella WHERE cod_classe=23 ORDER BY cod_giorno ASC, n_ora ASC
recuperi le info di una certa classe ordinandole per giorno e ora, poi cicli sui risultati:

Codice PHP:
$orario = array();
while (...) { 
// cicla con le funzioni SQL usando la var. $row, p.es.
  
$giorno $row['cod_giorno'];
  
$ora $row['n_ora'];
  
$materia $row['cod_materia']; // oppure recupera il "nome" della materia...
  
$orario[$giorno][$ora] = $materia;
}; 
poi scorri l'orario, considerando che puoi avere anche celle "vuote":
Codice PHP:
for ($giorno ... ) { // 1..6
  
for ($ora ... ) { // 1..5
    
$materia = ((isset($orario[$giorno][$ora]))?($orario[$giorno][$ora]):('(vuota)'));
    
// ...
  
};
};