Beh...io credo che questa non sia troppo corretta:
codice:
UPDATE a_corsi_materie
SET id_corsi='$id_corsi', id_materia1='$id_materia1', id_materia2='$id_materia2', id_materia3='$id_materia3', id_materia4='$id_materia4', id_materia5='$id_materia5', id_materia6='$id_materia6', id_materia7='$id_materia7', id_materia8='$id_materia8', id_materia9='$id_materia9', id_materia10='$id_materia10', id_materia11='$id_materia11'
WHERE id_corsi=$id";
nel senso che tu dici di aggiornare tutti i campi, compreso ID_CORSI, nella tabella "a_corsi_materie" DOVE ID_CORSI = X.
prova evitando di aggiornare ID_CORDI anche..