Avatar billede dingkee Nybegynder
04. juni 2004 - 17:27 Der er 10 kommentarer og
1 løsning

Hente fra tabel men tage id fra anden tabel

Jeg henter nogle ting fra en tabel der hedder:
Personer, som indeholder:
ID
Brugernavn
Email

Jeg skal derefter hente nogle ting fra en tabel der hedder:
test.
Der indeholder:
ID
Laner
Ting

Fra den tabel der hedder Test, skal jeg kun have den ting med som Laner fra Personer = ID i Test...

Jeg har lavet lidt kode her, men det virker ikke...
$query2 = mysql_query("SELECT * FROM tester WHERE id = '$laner'");
while($r = mysql_fetch_array($query2)) {

Jeg kan ikke bare tage Laner fra url'en da den ikke er med der...

Hvad gør jeg så??
Avatar billede riversen Nybegynder
04. juni 2004 - 17:30 #1
Fra den tabel der hedder Test, skal jeg kun have den ting med som Laner fra Personer = ID i Test... <-- forklar lige lidt bedre
Avatar billede tomat-ketchup Nybegynder
04. juni 2004 - 17:31 #2
$query2 = mysql_query("SELECT * FROM tester WHERE id = '$laner'");

Er det meningen at der skal stå "tester"?
Avatar billede jakobclausen Nybegynder
04. juni 2004 - 17:34 #3
SELECT * FROM personer,test WHERE personer.ID = test.ID AND id='$laner'
Avatar billede jakoba Nybegynder
04. juni 2004 - 18:06 #4
siden feltnavnet id findes i begge tabeller vil sql blive forvirret når du blot siger
    WHERE id = '$laner'
Vi mennesker kan se det er ligemeget jvilken id kolonne der bruges her, men computere er dumme. Vi skal præcsit fortælle hvilken (bare vælge een tilfældig)
    SELECT *
    FROM personer,test
    WHERE personer.ID = test.ID
      AND personer.id='$laner'

mvh JakobA
Avatar billede dingkee Nybegynder
04. juni 2004 - 18:20 #5
Hmm, det virker stadig ikke...
Jeg får denne fejl:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /laner.php on line 32
Avatar billede jakobclausen Nybegynder
04. juni 2004 - 18:27 #6
prøv med:
SELECT * FROM personer, test WHERE personer.ID = test.ID AND id='$laner'
Avatar billede dingkee Nybegynder
05. juni 2004 - 18:20 #7
Det virker stadig ikke...

Kan være jeg lige skal prøve at uddybe det:

På min side henter jeg først nogle ting fra tabellen Personer, jeg henter kun de ting hvor feltet Ud = ja.

Det virker fint.

Derefter skal jeg hente nogle ting fra den tabel der hedder test.
Her skal jeg kun hente de ting hvor feltet laner i Personer er det samme som ID i test.

Men det vil den bare ikk :(
Avatar billede dingkee Nybegynder
05. juni 2004 - 19:17 #8
Nu giver den ikke fejl, men derimod tager den kun den første post i test...

min kode er:
$query2 = mysql_query("SELECT * FROM personer,test WHERE personer.ID = test.ID AND test.id = '$laner'");
Avatar billede dingkee Nybegynder
05. juni 2004 - 19:52 #9
Sætter flere point på, vil virkelig gerne have dette til at virke :)
Avatar billede dingkee Nybegynder
14. december 2004 - 09:47 #10
Fik det aldrig til at virke...

Lukker spg. nu :(
Avatar billede jakoba Nybegynder
14. december 2004 - 09:57 #11
" jeg henter kun de ting hvor feltet Ud = ja "
det er en betingelse du beskriver der. betingelsen begrænser hvad der skal hentes fra de 2 tabeller.

" Fra den tabel der hedder Test, skal jeg kun have den ting med som Laner fra Personer = ID i Test... "
er en anden betingelse som ihvertfald jeg overså i første omgang

Så hvis det er alle betingelsern kan vi nu lave een sql sætning der gør det jele på een gang:

    SELECT *
    FROM personer,test
    WHERE personer.Ud = 'ja'
      AND personer.Laner = test.ID

Det største problem med SQL (og programmering i det hele taget) er at udtrykke sig klart og fuldstændigt.

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester