Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Tabelle relazionate?!?!

    Salve,
    devo iniziare un progetto ma per programmare ho alcuni dubbi...
    Sto creando un sito web che avrį una parte di programmazione in php con database. Prima di iniziare sto peró progettando il tutto.
    Mi sono bloccato ad un punto.
    Nella mia pagina ci sarį una form con 3 menu a tendina che permetterį di selezionare delle caratteristiche estraendo cosi dal database solo i campi necessari...

    Faccio l'esempio...

    Voglio scegliere una voce di attore, mi servirį per un doppiaggio, quindi devo cercarla nella mia pagina web...
    Vado alla form... seleziono il genere (uomo) poi lingua (italiano) poi ambito (cinematografico) ... premo il bottone di ricerca e mi appaiono solo gli attori compatibili....

    Questo lo so fare, faccio l'estrazione in database rispeto ai campi scelti nel formulario e non dovrei avere problemi...

    Pero se l'attore parla due lingue?!?!
    Mi spiego... l'attore con ID numero 24 parla italiano e inglese... quindi quando una persona lo cerca dovrį essere selezionato in entrambi i casi (sia italino che inglese), come faccio? come organizzo il database?
    Se nella mia tabella di database inserisco la colonna "lingua" pero ogni riga/attore ci deve stare un solo campo per la colonna lingua... come possono esserci due?

    Facendo un paio di ricerche ho notato che potrei usare il metodo delle tabelle relazionate, ma come si usano? come faccio?
    Grazie

  2. #2
    Crei tre tabelle

    id_utente nome ....


    Id_lingua nome_lingua


    Ed una terza che mette in relazione l'id dell'utente con l'id della lingua

    ponendo che l'italiano abbia id 2 e l'inglese id 12

    se l'utente id 24 parla queste due lingue, nella tabella delle relazioni ci saranno du righe

    24 -> 2
    24 ->12
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    Scusami il ritardo....
    ho avuto problemi con internet...

    quallo che non capisco č... creo 3 tabelle...

    in questo modo avremo:

    id_doppiatore
    1 Marco
    2 Mario
    3 Stefano

    id_lingua
    1 Tedesco
    2 Inglese
    3 Italiano
    4 Spagnolo

    Se Marco parla Tedesco e Italiano ci sarą nella tabella id_relazione

    id_relazione
    1 1
    1 3


    Poi come strutturo la queri per estrarre i dati???

    select from id_doppiatore, id_lingua where ??????

    Grazie

  4. #4
    Originariamente inviato da dariocena

    Poi come strutturo la queri per estrarre i dati???
    Dipende da cosa vuoi estrarre
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe tutto...

    del tipo... ci sarį un pannello form dove la persona sul mio sito potrį scegliere di selezionare tutti i doppiatori in base a 3 attributi...

    ad esempio: genere, etį, e lingua

    in base alla scelta saranno estratti in lista tutti quelli compatibili...
    ad esempio: Marco Stansio maschio 34 tedesco, italiano
    Fabrizio Gerardo maschio 34 tedesco, italiano
    Michael Forn maschio 34 tedesco, italiano
    etc
    per quanto riguardį etį e genere posso inserire gli attributi nella tabella id_doppiatore
    pero se un doppiatore parla piu di una lingua dovro creare questo sitema di relazione...

    pero praticamente come faccio il mio codice!??!

  6. #6
    diciamo che Marco parli 5 lingue, e tu stia cercando un attore uomo che parli inglese e francese (due delle lingue che conosce Marco). Una query di ricerca sarebbe
    codice:
    Tabella Lingue:
    id - nome
    1 - inglese
    2 - francese
    3 - tedesco
    4 - italiano
    5 - russo
    6 - giapponese
    
    Tabella Attori
    id-nome-cognome-etc...
    1090 - Marco - Rossi - etc...
    
    Tabella Lingue_Attori
    id - id_lingua - id_attore
    1 - 1 - 1090
    2 - 2 - 1090
    ....
    
    query:
    
    select * from Attori where Attori.id in (select id_attore from Lingue_attori where id_lingua in (1,2)) and Attori.sesso = 'm' and ... ;
    e cosģ per ogni altro attributo dell'attore che rispecchi lo stesso schema
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    Salve,
    sto programamndo giį da un po il sito...

    ho capito bene tutto teoricamente quello che mi hai spiegato... peró non capisco questo:
    " where id_lingua in (1,2) "

    cos'č (1,2) ?

    In questo caso dove sto utilizzando la tabella Lingue???

    Grazie

  8. #8
    se vedi l'esempio 1 e 2 sono gli id delle lingue nella tabella Lingue... la tabella lingue non la stai usando direttamente, ma piuttosto usi Lingue_Attori

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    questo intendo...
    se non relaziono che 1 e 2 sono inglese e francese... come fa a saperlo???

    grazie

  10. #10
    Originariamente inviato da dariocena
    questo intendo...
    se non relaziono che 1 e 2 sono inglese e francese... come fa a saperlo???

    grazie
    vabbeh dariocena qui č la base... intanto le tabelle sono relazionate quindi in Lingue_Attori sai benissimo che lingua_id corrisponde ad una specifica lingua. Poi nella tua form di ricerca tu avrai una serie di checkbox, tipo:

    codice:
    <input type="checkbox" value="1" name="lingue" />Inglese
    <input type="checkbox" value="2" name="lingue" />Francese
    ...
    che poi dal php velocemenete puoi riprendere col $_POST e mettere nella query i valori
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2024 vBulletin Solutions, Inc. All rights reserved.