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

    [PHP/MySql]Problema concettuale query

    Ciao a tutti,
    avrei un piccolo problema:
    in un file per un gioco di ruolo online che sto facendo, devo mostrare tutti i personaggi in una determinata gilda(o corporazione).
    ho un database strutturato così:
    Gilde:
    id|nomegilda
    Lvlcarichegilde:
    id|idgilda|idcarica|carica
    Utenti:
    id|nome|gilda|caricagilda

    dove in gilda e caricagilda di utenti c'è l'id delle rispettive.
    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ?
    codice:
    SELECT * FROM utenti WHERE gilda = 'idgilda'
    oppure mi sono perso qualcosa?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595

    Re: [PHP/MySql]Problema concettuale query

    Originariamente inviato da KaNnA
    Ciao a tutti,
    avrei un piccolo problema:
    in un file per un gioco di ruolo online che sto facendo, devo mostrare tutti i personaggi in una determinata gilda(o corporazione).
    ho un database strutturato così:
    Gilde:
    id|nomegilda
    Lvlcarichegilde:
    id|idgilda|idcarica|carica
    Utenti:
    id|nome|gilda|caricagilda

    dove in gilda e caricagilda di utenti c'è l'id delle rispettive.
    Come posso fare?
    codice:
    SELECT UT.nome, GI.nomegilda, CG.carica
    FROM utenti as UT, gilde as GI, carichegilde as CG
    WHERE
        UT.gilda = '$idgilda'
      and
        GI.id = '$idgilda'
      and
        CG.id = UT.caricagilda
    Considerando la variabile $idgilda valorzzata con l'id della gilda di cui vuoi avere gli utenti

    C'è solo una domanda.... cosa ruolo ha il campo "idcarica" della tabella "carichegilda" che non possa essere svolto meglio dal campo "id" della stessa tabella?

  4. #4
    beh, principalmente vi possono essere degli stessi idcarica per ciascuna gilda...che so:
    id|idcarica|idgilda
    4|0|0
    5|1|0
    6|2|0
    7|0|1
    ecc ecc
    comunque grazie, ora lo provo...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Quindi si tratta di relazione molti a molti e deve essere effettuata con una tabella aggiuntiva
    Altrimenti ti trovi a scrivere N volte la descrizione della carica
    Seguendo il tuo esempio
    d|idcarica|idgilda|carica
    4|0|0|adepto
    5|1|0|iniziato
    6|2|0|maestro
    7|0|1|adepto
    Riscrivendo innumerevoli volte la stringa "adepto"

    Inoltre ti trovi id_gilda ripetuto anche dove non serve
    Una struttura ordinata dovrebbe evitare qualsiasi "ridondanza" di dati

    In realtà continuo a non capire la necessità della tabella "cariche_gilda"
    Il tutto potrebbe essere gestito così

    Tabella 'gilde'
    id - gilda

    Tabella 'cariche'
    id - carica

    Tabella 'utenti'
    id - utente - id_gilda - id_carica
    codice:
    SELECT UT.utente, GI.gilda, CA.carica
    FROM utenti as UT, gilde as GI, cariche as CA, cariche_gilda as CG
    WHERE
    		UT.id_gilda = $idgilda
    	and
    		GI.gilda = $idgilda
    	and
    		CA.id = UT.id_carica

  6. #6
    ok, ok...mi son perso...
    in che senso ripeto N volte la descrizione?
    non è possibile fare la query con le tabelle che ho?

  7. #7

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.