Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    21

    Distinguere campi con lo stesso nome in tabelle diverse dentro mysql_fetch_array(...)

    Ciao a tutti,
    sto creando in una pagina .php una tabella che visualizza il risultato di una query:

    Codice PHP:
    $query "SELECT * FROM affiliated,person,institution WHERE affiliated.member = person.personID AND affiliated.institution = institution.institutionID ORDER BY institution.name ASC";
    $result mysql_query($query$db);
    echo 
    "<table border=1 width=1000>";
    echo 
    "<tr><td>Institution name</td><td>Surname</td><td>Name</td></tr>";
    while (
    $row mysql_fetch_array($result))
    echo 
    "<tr><td>$row[institution.name]</td><td>$row[person.surname]</td><td>$row[person.name]</td></tr>";
    echo 
    "</table>"
    La query è corretta. Il fatto è che mi da errore su tutti gli indici dell'array $row[]. Infatti ho notato che se ometto il nome della tabella (cioè invece di $row[institution.name] metto $row[name] tutto funziona, o meglio non mi da errore. Però avendo due tabelle, cioè person e institution, con un campo dallo stesso nome, in qualche modo devo distinguerli. Non devo modificare il nome dei campi, quello mi è dato e deve restare.

    Qualcuno può aiutarmi?? Grazie!
    Matteo

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    Codice PHP:

    while ($row mysql_fetch_array($result))
    {
    echo 
    "<tr><td>$row['name']</td>";
    echo 
    "<td></td><td>$row['surname']</td></tr>";
    }
    echo 
    "</table>"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    21
    Il fatto è che quando faccio la query, viene fatto un join delle tre tabelle. Due di queste, institution e person, hanno entrambe un campo chiamato "name". Secondo il linguaggio SQL per distinguere il "name della tabella institution dal "name" della tabella person, in teoria bisognerebbe mettere

    nometabella.nomecampo

    La query funziona anche se non metto gli apici, come ho visto che hai aggiunto tu. Il fatto è che dal codice che mi hai proposto, come si fa a capire se si tratta del "name" di institution o del "name" di person??? Ho bisogno di visualizzarli tutti e due...

    Aggiungo anche che ho provato a utilizzare gli apici, del tipo

    $row['nometabella.nomecampo']

    ma non funziona.

    Grazie x l'aiuto, ciao
    Matteo

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    raggionandoci su:
    il problema è che tu hai chiamato con lo stesso nome un campo di piu tabella quindi dovresti chiamare quel campo chiamato name con un altro nome per l'altra tabella e cosi dopèo potresti visualizzarela query senzA PROBLEMI.
    TIPO

    INSTITUTION
    name

    PERSON

    nome

    e dopo $row['nome']
    $row['name']

  5. #5
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ciao

    o cambi il nome dei campi oppure usi l'alias nella select. mi spiego meglio

    puoi fare una cosa del genere

    select tabella1.nome as nome1, tabella2.nome as nome2....

    mi sono spiegato?

    edit:
    poi nel fetch usi $row['nome1'], $row['nome2'], ecc

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    21
    Grazie, era quell' AS che mi mancava!

    Un saluto e grazie!!
    Matteo

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.