Avatar billede eikhorsholm Nybegynder
08. juni 2005 - 22:58 Der er 8 kommentarer og
1 løsning

MySQL-query problem.

Jeg har et unikt ID gemt i $_SESSION['mitID'] og tre tabeller der ser således ud:

bruger:
id (INT)
navn (varchar)

bruger_gruppe:
bruger_id (INT)
gruupe_id (INT)

gruppe:
id (INT)
title (varchar)

Hvorledes kan man i én SQL-sætning hive alle brugerene ud, som er i samme gruppe som en selv?
Avatar billede eikhorsholm Nybegynder
08. juni 2005 - 23:04 #1
Rettelse: i bruger_gruppe står der gruupe_id, det skal selvfølgelig være gruppe_id.
Avatar billede barklund Nybegynder
08. juni 2005 - 23:11 #2
Det er blot at joine to gange med bruger_gruppe tabellen som:

$sql = sprintf("
SELECT
  b.id,
  b.navn
FROM
  bruger AS b
  INNER JOIN bruger_gruppe AS bg1 ON b.id = bg1.bruger_id
  INNER JOIN bruger_gruppe AS bg2 ON bg1.gruppe_id = bg2.gruppe_id
WHERE
  bg2.bruger_id = %d
ORDER BY
  b.navn
", $_SESSION['mitID']);

Så kan du eventuelt tilføje en WHERE b.id != eget id, hvis du ikke vil have dig selv med :)

--
Morten Barklund
Avatar billede eikhorsholm Nybegynder
08. juni 2005 - 23:16 #3
Hvis jeg nu bruger syntaks ala:
mysql_query("...");

Hvordan kan jeg se dele SQL-sætningen op på flere linjer? Synes ikke det bliver syntaks-highlighted ordentligt, men det kan jo være min tekst-editor (bruger EditPlus).
Avatar billede eikhorsholm Nybegynder
08. juni 2005 - 23:30 #4
Skal det ikke være:

$sql = mysql_query("
SELECT
  b.id,
  b.navn
FROM
  bruger AS b
  INNER JOIN bruger_gruppe AS bg1 ON b.id = bg1.bruger_id
  INNER JOIN bruger_gruppe AS bg2 ON bg1.gruppe_id = bg2.gruppe_id
WHERE
  bg2.bruger_id = '$_SESSION[mitID]'
ORDER BY
  b.navn
");

Er det ikke mere korrekt, eller hvordan og hvorledes?
Men lav et svar, så er pointene dine for det virker. :-) Tak!
Avatar billede eikhorsholm Nybegynder
08. juni 2005 - 23:34 #5
Synes forresten ikke det helt virker hvis jeg ikke vil have mig selv med:
.
.
.
  INNER JOIN bruger_gruppe AS bg2 ON bg1.gruppe_id = bg2.gruppe_id
WHERE
  bg2.bruger_id = '$_SESSION[mitID]'
  b.id != '$_SESSION[mitID]'
ORDER BY
  b.navn
.
.
.
Avatar billede jensgram Nybegynder
09. juni 2005 - 09:29 #6
WHERE
  bg2.bruger_id = '$_SESSION[mitID]'
  AND
  b.id != '$_SESSION[mitID]'
ORDER BY
Avatar billede eikhorsholm Nybegynder
09. juni 2005 - 22:36 #7
jensgram --> Det er da rigtig. Nogen gange har man lov til ikke, at tænke sig om :-D
Avatar billede eikhorsholm Nybegynder
09. juni 2005 - 22:37 #8
barklund --> Laver du ikke et svar?
Avatar billede barklund Nybegynder
15. juni 2005 - 21:30 #9
Joda, undskyld :)
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