Secondo me ti converrebbe rivedere tutto, completamente. Molto brevemente, anche perchè sulla struttura che hai scelto c'è ben poco da commentare, ti consiglierei di creare delle tabelle dedicate per creare le giuste relazioni. Diciamo una prima tabella "corsi" con 2 campi l'id univoco che identifica il corso e un campo per la descrizione. Poi farei un seconda tabella per le materie, con la stessa struttura della tabella "corsi". Infine, per relazionare i vari corsi con le varie materie, farei una terza tabella "rel_corsi_materie", anche stavolta, con 2 soli campi: uno per l'ID del corso e l'altro per l'ID delle materie.
A questo punto dovrebbe essere tutto molto più semplice, sia per la gestione e l'aggiornamento che per la manipolazione dei dati.
Se pensi che le indicazioni che ti ho dato possano tornarti utili, riscrivi la struttura intera del tuo database e poi vediamo come organizzare le select dinamiche. Casa, fra l'altro semplicissima quando sai dove mettere mano con le varie query. Del resto si tratterebbe di passare alla query che ti restituisce i risultati un valore tramite $_GET, ad esempio e poi mostrare i dati in base al valore passato dalla select.