Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    24

    query e array bidimensionale (credo)

    ho le seguenti tabelle:
    squadra con i campi id - squadra
    giocatori con i campi id - giocatore - ruolo
    squadra_gioc con i campi id_squadra - gioc1 - gioc2 - gioc3 - ecc
    dove in gioc1, gioc2 ecc. inserisco gli id_giocatori che compongono ciascuna squadra. Mi sono impastato nella query per stampare la squadra con i relativi giocatori...ho abbozzato una cosa del tipo:
    Codice PHP:
    $result=mysql_query("SELECT squadra.*,giocatori.*,squadra_gioc.* FROM squadra JOIN squadra_gioc ON squadra.id=squadra_gioc.id_squadra JOIN giocatori ON giocatori.id=squadra_gioc.gioc1 AND giocatori.id=squadra_gioc.gioc2 AND giocatori.id=squadra_gioc3"); 
    non so se sia accettata tale sintassi con gli AND e poi rimango incastrato tra gli array...non cerco una query fatta ma qualche spunto per proseguire

    Ho anche pensato ad impostare la tabella squadra_gioc con i soli campi id - id_squadra - id_giocatore ma il discorso non cambia molto rispetto a sopra e sarebbe forse anche meno flessibile per l'impaginazione

    ringrazio se qualcuno ha qualche suggerimento

  2. #2
    Ciao,
    Se, come credo che un giocatore non può giocare in più di una squadra (ma qui, se si tratta di calcio, la mia ignoranza impera) non vedo l'utilità di utilizzare la terza tabella. Forse sarebbe più semplice ridurre il tutto a due tabelle:

    Tabella squadre:
    ---------------
    id_squadra
    nome_squadra

    Tabella giocatori:
    ----------------
    id_giocatore
    id_squadra
    nome_giocatore
    ruolo

    Così con una semplicissima

    SELECT * FROM squadra JOIN giocatore USING (id_squadra)

    riesci ad estrarre quanto ti serve. Spero di averti aiutato!

    Ciao!

    Stefano
    BluePine Technology
    Virtual hosting - Server Dedicati - Sviluppo applicazioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    24
    nel caso specifico ogni giocatore puo' giocare in piu' squadre...altrimenti si' sarebbe tutto piu' semplice.
    Ho comunque risolto facendo delle query simili a quella prima postata, una per ogni campo gioc della tabella squadra_gioc dato che gli AND non vanno bene. Non credo sia la soluzione migliore ma al momento e' l'unica che sono riuscito a far funzionare.

    Grazie cmq

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: query e array bidimensionale (credo)

    Originariamente inviato da bpd85
    Ho anche pensato ad impostare la tabella squadra_gioc con i soli campi id - id_squadra - id_giocatore
    questa era la soluzione migliore

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    24
    comincio ad esserne convinto, provo a vedere se va meglio...non mi pare normale fare oltre 10 query per stampare la pagina delle squadre

  6. #6
    Se devi per forza usare una terza tabella, sono d'accordo con Luca... in fin dei conti con quei dati li hai tutto ciò che ti serve. Poi con una sola query riesci ad estrarre tutti i giocatori che ti servono (okkio, è buttata li perché non l'ho provata!!!! essendo di select al limite però da' solo un errore )

    SELECT squadre.squadra, giocatori.giocatore, giocatori.ruolo FROM squadre JOIN squadre_giocatori USING (id_squadra) JOIN giocatori USING (id_giocatore)

    Ovviamente così estrai un unico resultset con il nome della squadra nella prima colonna, il nome del giocatore nella seconda ed il suo ruolo nella terza.

    Edit: ovviamente nel mio esempio i giocatori avranno, come id, un campo "id_giocatore", le squadre "id_squadra" e la terza tabella solo due campi, id_giocatore ed id_squadra con un solo indice su due campi.
    BluePine Technology
    Virtual hosting - Server Dedicati - Sviluppo applicazioni

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.