/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Simpel join mellem to tabeller med identis~
Fra : Torben Heikel Vinthe~


Dato : 01-10-03 23:40

Hej

Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
giver ikke noget:

$query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
tabelA.id=tabelB.tabelA_id",$mysql_link);
while($data=mysql_fetch_array($query))
{
echo "Id-nummer for tabel 1: $data[tabel1.id]";
}

Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
den mig til gengæld id-nummeret for tabelB!?
Hvad gør jeg galt?

Venlig hilsen
Torben Heikel Vinther



 
 
Johan Holst Nielsen (02-10-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 02-10-03 00:47

Torben Heikel Vinther wrote:
> Hej
>
> Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
> drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
> indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
> id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
> giver ikke noget:
>
> $query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
> tabelA.id=tabelB.tabelA_id",$mysql_link);
> while($data=mysql_fetch_array($query))
> {
> echo "Id-nummer for tabel 1: $data[tabel1.id]";
> }
>
> Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
> den mig til gengæld id-nummeret for tabelB!?
> Hvad gør jeg galt?

prøv..

SELECT tabelA.id FROM tabelA,tabelB WHERE tabelA.id = tabelB.tabelA_id

Iøvrigt skal database spørgsmål stilles i dk.edb.database ;)

mvh
Johan


Rasmus Hansen (03-10-2003)
Kommentar
Fra : Rasmus Hansen


Dato : 03-10-03 12:08

Torben Heikel Vinther wrote:
> Hej
>
> Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
> drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
> indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
> id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
> giver ikke noget:
>
> $query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
> tabelA.id=tabelB.tabelA_id",$mysql_link);
> while($data=mysql_fetch_array($query))
> {
> echo "Id-nummer for tabel 1: $data[tabel1.id]";
> }
>
> Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
> den mig til gengæld id-nummeret for tabelB!?
> Hvad gør jeg galt?

Det er fordi attributten ikke hedder tabelA.id, men bare id når den er
trukket ud af databasen. Så hvis du bruger $data[id] vil du få id-nummer
for tabelA (da det er id du joiner på vil det jo være det samme for de
to attributter i den enkelte row), hvis du bruger $data[tabelA_id] vil
du få id-nummeret fra tabelB, som peger på tabelA (foreign key)



Håber det gav mening


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste