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

    join su tabelle che hanno il campo id

    Ciao a tutti! ho fatto una join su due tabelle, funziona ma ha un problema...
    il problema sta nel fatto che le due tabelle hanno entrambe la colonna id e a me interessano tutte e due me riesco ad accedere solo ad una

    Codice PHP:
    $dati=mysql_query("SELECT * FROM Dotazione as D, Attacchi as A WHERE D.idAttacco=A.id AND D.CodiceFb=$uid");
    $rs=mysql_fetch_array($dati);
    echo 
    $rs['id']; 
    come faccio in questo codice a stampare sia l'id attacchi che l'id dotazione?
    grazie

  2. #2
    Ciao...io farei in 2 modi:

    1) elenco tutti i campi nella select utilizzando la AS per quelli con nome uguale...una cosa tipo
    Codice PHP:
    SELECT tab1.id AS id_1tab2.id AS id_2,.... e via tutti i campi 
    2) in questo caso le tabelle sono relazionate giusto? dalla query che hai scritto deduco che idAttacco nella tabella Dotazione sia uguale all'id della tabella Attacchi....in questo caso potresti semplicemente leggere $rs["idAttacco"]

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    se stampo $rs["id"] mi stampa id della tabella attacchi, il mio problema è stampare l'id dotazione... con il primo metodo funzionerebbe ma verrebbe una select molto lunga... non c'è modo di dire tutti i campi con l'asterisco solo che gli id avranno un alias?

  4. #4
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, come dice bene albx87, per come hai riportato il tuo codice, le due tabelle avranno sia dotazione.id che attacco.id uguali...in quanto li usi per crearti la inner join che sfrutta appunto questa particolarità di relazione da te creata.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    forse non sto capendo ma, se io stampo $rs['id'] ho l'id dell'attacco, dse stampassi $rs["idAttacco"] avrei comunque l'id dell'attacco giusto? se volessi conoscere l'id dotazione? come faccio?

  6. #6
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    No purtroppo non hai nessun modo se non quello suggerito da albx87

    1) elenco tutti i campi nella select utilizzando la AS per quelli con nome uguale...una cosa tipo codice PHP: SELECT tab1.id AS id_1, tab2.id AS id_2,.... e via tutti i campi
    Altrimenti se ti è possibile farlo, rinomini l'id della tabella dotazione, con un altro nome univoco, ad esempio IdDotazione. Così elimini il problema alla radice

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ok grazie mille

  8. #8
    Mmm...c'è un modo più banale, scambia l'ordine delle tabelle nel dopo il FROM

    lui ti stampa l'id degli attacchi perchè legge prima la tabella dotazioni e poi la tabella attacchi...di conseguenza sovrascrive nell'array il valore del campo con chiave id.

    Se tu leggi prima la tabella attacchi e poi la tabella dotazioni $rs["id"] sarà l'id delle dotazioni mentre $rs["idAttacco"] sarà l'id dell'attacco...almeno a logica dovrebbe funzionare

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    il problema è che mi servono tutte e due

  10. #10
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Si, ma all'id di attacco puoi accedere benissimo con D.idAttacco

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.