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.)