Ciao a tutti. Sono nuovo del forum, almeno per la scrittura dei post, e del php che ho imparato integrando la lettura di una guida e le sbirciate in rete.
Ho fatto alcune ricerche nel forum, ma non trovo niente che faccia al caso mio (o, almeno, cosi' pare).
In un form (con attributi method="POST" e action="<?php echo $_SERVER['PHP_SELF']; ?>") ho un menu a tendina popolato con le righe di una tabella Mysql.
Ciascuna di esse è posta in relazione con una o due righe di una seconda tabella. Selezionando una voce dal dropdown menu
una tabella html viene a sua volta popolata con i dati estratti dalla riga (o le righe) della seconda tabella, un altro dropdown menu popolato
con le righe di un terza tabella Mysql e una casella di testo.
Quello che sto cercando di fare e' aggiornare la terza tabella con il valore della voce di menu selezionata e con il valore immesso nella casella di testo.
Le tabelle Mysql coinvolte sono:
'corso_di_studio' con i campi 'Codice_esame', 'Titolazione_esame';
'moduli' con i campi 'Codice_modulo', 'Titolazione_modulo', 'Codice_presidente', 'Semestre'
'docenti' con i campi 'Codice_presidente' e 'Cognome_e_nome'
C'e' anche una tabella Mysql che crea una relazione tra 'corso_di_Studio' e 'moduli' legando tra loro 'Codice_esame' e 'Codice_modulo'
Non ho problemi nel creare il primo menu da cui seleziono l'esame, ne' con il riportare nella tabella hmtl il modulo (o i moduli) collegati con esso.
Quel che non riesco a fare è riportare in 'moduli' il 'Codice_presidente' relativo al docente selezionato dal menu e il valore inserito
nella casella di testo.
Una volta selezionata la voce dal primo menu, con un ciclo while creo e popolo la tabella. Il secondo dropdown è popolato
con un ciclo foreach che pesca entrambi i campi di 'docenti', ma mostra solo i valori di 'Cognome_e_nome'.
Posto un po' di codice, quello che nelle mie intenzioni dovrebbe aggiornare la tabella 'moduli':
'scrivi_su_moduli' è il "nome" che ho dato al pulsante di invio del formCodice PHP:
//nelle righe precedenti inizia il ciclo while che crea
//la tabella html che mostra le righe di 'moduli'
//poste in relazione con 'corso_di_studio'
if (isset($_POST['scrivi_su_moduli'])) {
foreach ($_POST['menu_docenti'] as $chiave_docenti => $idocenti) {
$cod_presidente = substr ($idocenti, 0, 5);
$semestre = $_POST['semestre']
$query_su_moduli = "UPDATE moduli SET ('Semestre' = '".$semestre."', 'Codice_presidente' = '".$cod_presidente."') WHERE ('Codice_modulo' LIKE '%".$Codice_modulo."%')";
if (mysql_query($query_su_moduli)) {
echo"Il record è stato aggiornato";
} else {
echo"Il record non è stato aggiornato";
};
}
}
'menu_docenti' è il dropdown menu e quindi l'array che contiene i dati ricavati dalla tabella 'docenti'
'semestre' è la casella di testo
la variabile $Codice_modulo che richiamo nella query viene valorizzata in un'altra parte dello script (ho verificato con un echo
che il valore arrivi alla query).
Seleziono il mio docente, inserisco il semestre, clicco sul pulsante di invio, ma la query non vuol saperne di funzionare. Qualcuno sa dirmi dove sbaglio?
Un'idea che mi sono fatto è che il ciclo foreach annidato all'interno di while possa creare problemi; non so quanto sia azzeccata.
Ringrazio in anticipo
Emanuele