Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MySQL] come strutturare due tabelle per ...

    Ho 3 aziende (X,Y,Z) e 5 prodotti (a,b,c,d,e). Ogni azienda produce un sottoinsieme dei 5 prodotti. Ad esempio:

    X produce a,b
    Y produce a,b,c,d
    Z produce e

    in una pagine .php voglio realizzare un form dove l'utente deve selezionare l'azienda e il prodotto desiderato.

    NOTA: sia il numero di aziende che il numero di prodotti possono variare.

    La mia soluzione:

    volevo creare due form (con 2 submit) sequenziali (il secondo di carica dopo aver cliccato submit nel primo). Nel primo si seleziona l'azienda mentre nel secondo il prodotto.

    Il primo form riempie il contenuto di <select> andando a leggere nella tabella aziende i nomi delle aziende presenti (con mysql_fetch_array(..))

    PROBLEMA

    come faccio a riempire il <select> del secondo form con i prodotti dell'azienda selezionata nel primo form?

    io avevo pensato ad una seconda tabella chiamata prodotti:

    tabella aziende:
    id nome
    -----------
    1 | X
    2 | Y
    3 | Z

    tabella prodotti:
    id nome ?? ?? ??
    ----------------------------
    1 | a | 1 1 0
    2 | b | 1 1 0
    3 | c | 0 1 0
    4 | d | 0 1 0
    5 | e | 0 0 1

    avevo pensato a una query del genere per caricare i nomi dei prodotti dell'azienda: select nome from prodotti where ?? = 1;

    il problema è il nome dei campi ?? -> intuitivamente metterei l'id dell'azienda ma è un valore numerico e mi sa che non si può ...

    qualcuno ha soluzioni o suggerimenti?

    grazie
    RiKkArDo on IRCnet

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Crea una terza tabella, che relaziona le tabelle aziende e prodotti:

    Tabella3[ id_azienda , id_prodotto ]

  3. #3
    Originariamente inviato da Teuzzo
    Crea una terza tabella, che relaziona le tabelle aziende e prodotti:

    Tabella3[ id_azienda , id_prodotto ]
    grazie per il suggerimento,
    se ho capito bene:
    avere in tutto 3 tabelle:

    Aziende [id_azienda, nome_azienda]
    Prodotti [id_prodotto, nome_prodotto]


    Relazioni [id_azienda, id_prodotto]

    Come dici tu c'è un record per azienda nella tabella aziende, un record per prodotto nella tabella prodotti e 1 recordo per associazione azienda-prodotto nella tabella relazioni?

    uhmmm
    RiKkArDo on IRCnet

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Esatto, detto anche modello relazionale.
    Se aggiungi aziende, prodotti e modifichi, aggiungi o togli associazioni aziende-prodotti non hai bisogno di modificare la struttura del db e tutte le interrogazioni sono semplici.

  5. #5
    grazie, ora provo con il metodo suggerito
    RiKkArDo on IRCnet

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.