Avatar billede phpbegynder2004 Nybegynder
27. september 2006 - 16:28 Der er 4 kommentarer og
2 løsninger

SQL udtræk fra flere tabeller

Hej,

Jeg har et brugersystem, der indeholder flere grupper.
Dvs. at brugere fra gruppe A ikke kan se brugere fra gruppe B.

Når man er logget ind kan man få vist en oversigt over brugere:
$hent_users = mysql_query("SELECT id, nick WHERE gruppe='$_SESSION[gruppe]' ORDER BY nick ASC");

OVenstående bliver trukket ud fra tabellen users, der består af felterne: id, nick og gruppe.

Der findes dog også nogle admins der tilhører mere end en gruppe.

I tabellen users står de som alle andre brugere
id | nick | gruppe
4 | Peter | A

Derudover står de også i en anden tabel (kaldet admin) for at vise, at de er med i en anden gruppe:
id | gruppe
4 | C

Så Peter er både med i gruppe A og C.

Hvordan kan jeg gøre, så han bliver trukket ud når gruppe="A" || gruppe="C" ?

Er der en lettere måde at gøre det på?

På forhånd mange tak!
Avatar billede hmortensen Nybegynder
27. september 2006 - 16:36 #1
Jeg ville nok lave lidt om i dit database design.
Fjerne gruppe fra users tabellen og slette tabellen admin, og så oprette en tabel der holder styr på grupper, med flg.: felter id, userid, gruppe.

Så du får:
users:
id | nick
1 | kaj
2 | bo

gruppe:
id | userid | gruppe
1 | 1 | A
2 | 1 | C
3 | 2 | A
Avatar billede jaw Nybegynder
27. september 2006 - 16:46 #2
Enig, og så kan dit udtræk måske være noget i stil med:
SELECT users.id, users.navn FROM users, gruppe WHERE gruppe.gruppe = '".$_SESSION['gruppe']."' AND users.id = gruppe.userid
Avatar billede onkel_satan Nybegynder
27. september 2006 - 17:06 #3
Et tip til fremtidig projekter. Når du arbejder med relations database er hovedreglen at du ikke må have samme data stående flere steder (flere tabeller).Dette er der flere grunde til. 1) Det fylder ekstra 2) hver gang du aendre denne data skal du huske at aendre den alle de steder den forkommer 3) Er du rigtig uheldig kan et andet sql kald snige sig ind imellem dine 2 to kald du normalt ville bruge til at opdatere to tabeller med.
Avatar billede phpbegynder2004 Nybegynder
12. oktober 2006 - 18:44 #4
Okay, tak for hjælpen. Læg et svar
Avatar billede hmortensen Nybegynder
12. oktober 2006 - 20:04 #5
Det var så lidt.
Avatar billede jaw Nybegynder
12. oktober 2006 - 21:12 #6
Selv tak.
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