04. juni 2004 - 17:27Der 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...
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'
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.
" 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
Synes godt om
Ny brugerNybegynder
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.