Eccoti qui il codice per generare le 2 tabelle Professori e Lezioni:

Codice PHP:
<?
include("config.php");

// creazione tabella professori
eseguiQuery("CREATE TABLE Professori "
            
."(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
            
."cognome VARCHAR(20) NOT NULL, "
            
."nome VARCHAR(20) NOT NULL "
            
.") ENGINE = MYISAM ;");
            
// creazione tabella lezioni
eseguiQuery("CREATE TABLE Lezioni "
            
."(idProfessore INT NOT NULL , "
            
."giornoSettimana INT NOT NULL , "
            
."orario INT NOT NULL , "
            
."aula VARCHAR(5) NOT NULL "
            
.") ENGINE = MYISAM ; ");


// caricamento della tabella iniziale dal db
$tab caricaQuery("SELECT * FROM tab", array('cognome'
                                            
'lun_1''lun_2''lun_3''lun_4''lun_5''lun_6'
                                            
'mar_1''mar_2''mar_3''mar_4''mar_5''mar_6'
                                            
'mer_1''mer_2''mer_3''mer_4''mer_5''mer_6'
                                            
'gio_1''gio_2''gio_3''gio_4''gio_5''gio_6'
                                            
'ven_1''ven_2''ven_3''ven_4''ven_5''ven_6'
                                            
'sab_1''sab_2''sab_3''sab_4''sab_5''sab_6'));

// array associativo per i giorni di settimana
$settimana = array('','lun','mar','mer','gio','ven','sab');

// scorrimento di ogni riga (e quindi di ogni professore)
for ($i=0$i<count($tab); $i++) {

    
$cognome $tab[$i]['cognome'];
    
    
// creazione nuovo professore
    
$idProfessore eseguiQueryInsert("INSERT INTO Professori (cognome) VALUES ('$cognome')");
    
    
// scorrimento dei giorni della settimana
    
for ($giornoSettimana=1$giornoSettimana<=6$giornoSettimana++)
        
// scorrimento degli orari
        
for ($orario=1$orario<=6$orario++) {
            
// recupero dell'aula (se null vuol dire che il professore non farà lezione)
            
$aula $tab[$i][$settimana[$giornoSettimana] . "_" $orario];
            if (
$aula != NULL)
                
eseguiQuery("INSERT INTO Lezioni (idProfessore, giornoSettimana, orario, aula) "
                            
." VALUES ($idProfessore$giornoSettimana$orario, '$aula')"); // inserimento della lezione
        
}
}

?>
p.s. il database l'ho chiamato "prova" e la tabella iniziale "tab", ho impostato il campo giornoSettimana come intero (1=lunedì. 2=martedì, etc.)