Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: select con elenco

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    select con elenco

    ho fatto una select dinamica che prende i nomi dei corsi dal db mysql, vorrei poter aggiungere anche le materie che riguardano il corso selezionato ma non riesco a farlo funzionare.
    Esempio:
    se seleziono corso A nella select, dovrebbe uscire sotto la select un semplice elenco (non select)
    materia1 corso A
    materia2 corso A
    materia3 corso A

    se seleziono corso B nella select, dovrebbe uscire sotto la select un semplice elenco (non select)
    materia1 corso B
    materia2 corso B
    materia3 corso B

    questo è quello che ho fatto ma non mi funziona:

    Codice PHP:
    <? 
    $query 
    "SELECT * FROM a_corsi ORDER BY id_corsi"
    $result mysql_query($query$conn) or die (mysql_error() ); 
    ?>

    Codice PHP:
    <form enctype="multipart/form-data" name="form" action="<?=$PHP_SELF?>" method="post"> 
    <? 
    if (mysql_num_rows($result)) { 
      echo 
    "<select name=\"corso\" size=\"1\">"
      while (
    $row=mysql_fetch_array($result)) { 
        echo 
    "<option value=\"".$row['nome_corso']."\">".$row['nome_corso']."</option>"
      } 
      echo 
    "</select>"

      echo 
    "<?=$row['materia_1']?>
     
    <?=
    $row['materia_2']?>
     
    <?=
    $row['materia_3']?>
     
    <?=
    $row['materia_4']?>
     
    <?=
    $row['materia_5']?>
    "


    ?> 

    </form>

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    A parte il fatto che di "dinamico" non si vede nulla, la cosa importante è la struttura delle tabelle. In base alle relazioni che hai creato dovrai costruire le query che restituiranno i valori desiderati di volta in volta. Comunque, questo aspetto per adesso è il meno importante, come hai sistemato le tabelle?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    la tabella si chiama a_corsi


  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ok ora ti faccio vedere il db, però faccio presente che non posso usare le tabelle con InnoDB e di conseguenza le chiavi esterne (fk) perchè Aruba.it non offre questo servizio. Quindi avrei usato Inner Join.


  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    allora se ho capito bene devo fare così:

    tabella (corsi) = campi (id_corsi, nome_corso, luogo_corso, data1_corso, data2_corso)
    tabella (materie) = campi (id_materie, nome_materia) le materie però sono 10 per ogni corso
    tabella (allievi) = campi (id_allievi, nome, cognome, sesso, via, tel, cel, ecc...)
    tabella (corsi_allievi) = campi (id_corsi, id_allievi)
    tabella (corsi_materie) = campi (id_corsi, id_materie)
    tabella (voti) = campi (id_allievi, id_materie, voto_materia) un voto per ogni materia
    tabella (attestati) = campi (id_corsi, id_allievi, num_attestato) un attestato per ogni corso

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Originariamente inviato da prinzart
    allora se ho capito bene devo fare così:

    tabella (corsi) = campi (id_corsi, nome_corso, luogo_corso, data1_corso, data2_corso)
    tabella (materie) = campi (id_materie, nome_materia) le materie però sono 10 per ogni corso
    tabella (allievi) = campi (id_allievi, nome, cognome, sesso, via, tel, cel, ecc...)
    tabella (corsi_allievi) = campi (id_corsi, id_allievi)
    tabella (corsi_materie) = campi (id_corsi, id_materie)
    tabella (voti) = campi (id_allievi, id_materie, voto_materia) un voto per ogni materia
    tabella (attestati) = campi (id_corsi, id_allievi, num_attestato) un attestato per ogni corso
    Si, così potrebbe andare. Anche se io modificherei ancora la tabella "corsi", lasciando in questa solo l'id e il nome del corso. Poi farei un'altra tabella per il luogo dove si terrà e per le date di inizio e fine corso.

    Non importa se le materie sono sempre 10 per ogni corso. Nel tempo potrebbero aumentare (o diminuire) e tenerle in una tabella dedicata ti servirà a gestire meglio il tutto.

    C'è una cosa però, purtroppo inveitabile, anche nella migliore situazione possibile, per valutare in maniera corretta il funzionamento dell'intero database dovrai iniziare a caricarvi dei dati e da questi controllare eventuali anomalie, come ad esempio ridondanze o cose simili. Inoltre andrebbero prese in considerazione quante più situazioni estreme possibili, proprio per rendere migliore sia la struttura che, ovviamente, la gestione dei dati stessi.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ecco ho modificato, ma questo si può fare anche senza avere le tabelle settate con InnoDB?

    tabella (corsi) = campi (id_corsi, nome_corso)
    tabella (corsivarie) = campi (id_corsivarie, nome_corso, luogo_corso, data1_corso, data2_corso)
    tabella (corsi_ corsivarie) = campi (id_corsi, id_corsivarie)

    tabella (materie) = campi (id_materie, nome_materia)
    tabella (allievi) = campi (id_allievi, nome, cognome, sesso, via, tel, cel, ecc...)
    tabella (corsi_allievi) = campi (id_corsi, id_allievi)
    tabella (corsi_materie) = campi (id_corsi, id_materie)
    tabella (voti) = campi (id_allievi, id_materie, voto_materia)
    tabella (attestati) = campi (id_corsi, id_allievi, num_attestato)

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Certo che si può fare anche senza le InnoDB, dovrai solo gestire a mano tutti gli aggiornamenti sui dati prestando attenzione alle modifiche sulle tabelle che contengono riferimenti (chiavi esterne) ad altre tabelle.

    Se oltre ad aver definito la struttura hai creato già tutte le tabelle possiamo passare alla creazione della select dinamica...

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ecco ho finito adesso di modificare il db.
    Sono pronto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.