Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Array e query 'Join'

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    Array e query 'Join'

    ciao a tutti!
    faccio un brevissimo esempio per spiegare la situazione:
    immaginate di avere nel database due tabelle con questi campi:
    tabella1
    id dato1 datoA

    tabella2
    id dato2 datoA

    io ho fatto una query di tipo Join ponendo id.tabella1 = id.tabella2
    il risultato è stato registrato in un array ... (tutto ok fino a qui) ...

    io sono poi solito 'leggere' il risultato con i 'classici cicli':

    while ($rec = mysql_fetch_array($rs))
    {
    $dati[] = $rec;
    }

    foreach ($dati as $d)
    {
    $dato = $d['datoA'];
    }

    e qui nasce il problema:
    per caso le mie tabelle presentavano un nome di campo uguale (datoA)
    quando andavo a leggere l'array $dato corrispondeva sempre a tabella1.datoA
    io non sono riuscito a 'richiamare' il datoA della tabella2
    ho provato in vari modi senza successo
    ho anche provato con : $dato = $d['tabella2'.'datoA'] ma non so se è corretto....

    in ogni modo ho poi risolto andando a cambiare il nome della campo di una tabella
    il mio era una paginetta semplice ed è bastato questo.

    se però fosse stato un progetto più 'impegnativo' come avrei potuto richiamare entrambi in datiA senza cambiare nome al campo nel database ?????

    grazie mille

  2. #2
    Che tipo di Join hai fatto? si può vedere?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    eccola....

    $sql = "SELECT * FROM `tabella1` , `tabell2` WHERE (`tabella1`.`datoA` = \"$dato\" AND `tabella1`.`id` = `tabella2`.`id` ) ORDER BY `tabella1`.`datoA` ASC ";

    riassumento:
    da questa query dovevo leggere:
    tabella1.datoA e tabella2.datoA

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    Pelatolandia hai qualche indicazione per me?

  5. #5
    Beh guarda, teoricamente la tua query è giusta, forse ti hanno creato problemi gli apici provala così

    "SELECT * FROM tabella1 , tabell2 WHERE (tabella1.datoA = \"$dato\" AND tabella1.id = tabella2.id ) ORDER BY tabella1.datoA ASC ";

    se ancora non ti viene mi dovresti far vedere esattamente il testo della query com'è nello script

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    forse però non mi sono spiegato bene.
    il problema non credo sia nella query.
    la query funziona e i dati estratti vengono inseriti correttamente nell' array $dati[].

    da questo array, richiamando $dati['dato1'] ottengo giustamente i dati 'tabella1'.'dato1'.

    Come posso però estrarre 'tabella1'.'datoA' e 'tabella2'.'datoA' ???
    Infatti andando a richiamare $dati['datoA'] ottengo solo il datoA della tabella 1 e non so come ottenere il datoA della tabella 2.....





    ... sempre grazie per le risposte.... siete tutti fantastici in questo forum!

  7. #7
    Ah bene, non avevo capito, l'unica soluzione è che quando tu vai ad effettuare la query gli dai

    Select..ecc ecc. tabella1.datoA as qualcosa

    in modo da differenziarne il nome e poterlo richiamare in seguito^^

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    ah ok... buono a sapersi!
    grazie ancora!
    Ciao

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.