Avatar billede codemanager Nybegynder
24. marts 2005 - 11:10 Der er 17 kommentarer og
1 løsning

bedste måde og henter data fra to tabeller

hey

hvordan henter jeg bedste data fra to tabeller er det noget med og havde et id i hver tabel eller hvad skal jeg gøre
Avatar billede thomaskleist Nybegynder
24. marts 2005 - 11:19 #1
Du skal lave en Where clausul som her
  select * tabel1 , tabel2
where tabel1.id = tabel2.tabel1.id
Avatar billede Slettet bruger
24. marts 2005 - 11:39 #2
Det kommer jo helt an på hvordan dine tabeller ser ud, og hvad du skal hente.

Hvis du skal kæde dine tabeller sammen 'sidelæns', altså vandret, skal du gøre det med JOIN.
Hvis du skal kæde dem sammen under hinanden skal det gøres med UNION

- - - - JOIN - - - -

Hvis du har disse tabeller:

username:
id
username

useremail:
id
email


Og du skal have et resultat ud som indeholder id, email og username, skal det gøres med JOIN:

SELECT username.id, username.username, useremail.email
FROM username JOIN useremil ON username.id = useremail.id

- - - - UNION - - - -

Hvis du har to tabeller som er 'ens' kan du gøre det med UNION:
SELECT * FROM table1
UNION
SELECT * FROM table2

I virkeligheden bruger man sjældent UNION til 2 ens tabeller, men istedet på to resultater med samme felter:

SELECT * FROM table1
WHERE field1 = 1
UNION
SELECT * FROM table1
WHERE field1 > 50
Avatar billede codemanager Nybegynder
24. marts 2005 - 12:14 #3
det skal bruges til og hente bruge data ud

i den ene tabel "bruger" har jeg bruger navn osv
i den anden tabel "bruger_data" har jeg by, alder osv

så skal jeg havde lavet en side hvor jeg viser brugerns data hvor jeg skal hente begge tabler
Avatar billede Slettet bruger
24. marts 2005 - 12:20 #4
Så skal du bruge JOIN. Det er  nok noget lignende det her:

SELECT bruger.navn, bruger.id, bruger_data.by, bruger_data.alder
FROM bruger JOIN bruger_data ON bruger.id = bruger_data.id
WHERE bruger.id = 20

Her finder du alle data for brugeren med id = 20
Avatar billede jakobdo Ekspert
24. marts 2005 - 12:56 #5
Hvorfor gemmer du det i 2 tabeller?
by, alder osv... burde da ligge i bruger-tabellen.
Avatar billede Slettet bruger
24. marts 2005 - 13:20 #6
jakobdo -> Det kan der jo være flere grunde til. Den mest oplagte er jo nok almindelig normalisering, idet en bruger måske ikke er tvunget til at udlevere by, alder osv.
Avatar billede jakobdo Ekspert
24. marts 2005 - 13:37 #7
Det er rigtigt!
Men man kan også normalisere for meget!
Man må jo også gå på kompromis på et tidspunkt!
Men fair nok!
Avatar billede Slettet bruger
24. marts 2005 - 13:40 #8
Rigtigt at det også kan gå over gevind på et tidspunkt... Men det er jo en fin træning :)
Avatar billede codemanager Nybegynder
24. marts 2005 - 18:01 #9
gartzen> hvordan vil en sql sætning så ud til den kode du lavede bare så jeg ahr lidt og lege med
Avatar billede Slettet bruger
24. marts 2005 - 18:11 #10
Ikke forstået? Den har jeg jo skrevet..
Avatar billede codemanager Nybegynder
24. marts 2005 - 18:12 #11
sorry den der skal sættes ind i mysql hedder det ikke osse den sql sætning
Avatar billede jakobdo Ekspert
24. marts 2005 - 18:16 #12
$query = mysql_query("SELECT bruger.navn, bruger.id, bruger_data.by, bruger_data.alder
FROM bruger JOIN bruger_data ON bruger.id = bruger_data.id
WHERE bruger.id = " . $brugerid . " LIMIT 1");
Avatar billede codemanager Nybegynder
24. marts 2005 - 20:38 #13
det var nu heller ikke det

alsår dette

create table navn
(
osv
)
Avatar billede rednex Nybegynder
24. marts 2005 - 23:35 #14
Det er en rigtig god idé at finde et værktøj til at administrere dine databaser. Der er jo ingen grund til at lave mere arbejde end højst nødvendigt. Et webbaseret et af slagsen er PHPMyAdmin som kan hentes på http://www.phpmyadmin.net

MySQL har også lavet nogle GUI'er til diverse platforme. F.eks. MySQL Administrator (http://www.mysql.com/products/administrator/) og MySQL Query Browser (http://www.mysql.com/products/query-browser/).
Avatar billede codemanager Nybegynder
25. marts 2005 - 11:51 #15
jeg har phpmyadin iden det hele køre på en webserver
Avatar billede rednex Nybegynder
25. marts 2005 - 12:05 #16
Så kan du bruge PHPMyAdmin til at oprette dine tabeller. Opret f.eks. 2 tabeller - 'bruger' og 'bruger_data'.

I tabellen 'bruger' kan du så lave 2 felter - 'id' og 'navn'. 'id' skal være en INT, have AUTO_INCREMENT og være sat til primær nøgle. 'navn' skal være en VARCHAR.

I 'bruger_data' skal du også have et felt som hedder 'id' magen til den i 'bruger' tabellen, og derudover opretter du så de øvrige felter du gerne vil have.
Avatar billede codemanager Nybegynder
25. marts 2005 - 12:11 #17
okay takker leger lige lidt med det og vender tilbage
Avatar billede codemanager Nybegynder
14. april 2005 - 18:10 #18
luk
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