Avatar billede rudi1234 Nybegynder
28. januar 2003 - 15:43 Der er 3 kommentarer og
1 løsning

sql-forespørgsel i flere tabeller

Jeg har en tabel med sider, og nogle sider er med begrænset adgang. I "adgangstabel" står hvilke brugere der har adgang til en given side.

Hvordan kan denne
strSQL = "Select * from sider where ... " udbygges så den checker i adgangstabel om en bruger må se siden.

NB: Session("brugerId") indeholder brugerens id, og i "adgangstabel" er en post hvor der der f.eks. står at bruger 2 har adgang til side med id = 32.
Avatar billede sbm Nybegynder
28. januar 2003 - 16:07 #1
Jeg laver lige et par antagelser.

Din tabel SIDER indeholder en kolonne med et ID nummer, og brugerne må kun se de rækker med de "rigtige" ID-numre.

Din tabel ADGANGSTABEL har kun to kolonner. En der angiver BRUGERID og en anden der angiver et SIDEID som han har lov til at se.

SQL = "SELECT * FROM SIDER, ADGANGSTABEL WHERE ADGANGSTABEL.BRUGERID = '" & brugerid & " AND ADGANGSTABEL.SIDEID = SIDER.ID "
Avatar billede sbm Nybegynder
28. januar 2003 - 16:13 #2
Ups... Jeg glemte lige en enkelt '  i SQL sætningen:

SQL = "SELECT * FROM SIDER, ADGANGSTABEL WHERE ADGANGSTABEL.BRUGERID = '" & brugerid & "' AND ADGANGSTABEL.SIDEID = SIDER.ID "
Avatar billede rudi1234 Nybegynder
28. januar 2003 - 16:49 #3
Det virkede - og dine antagelser var helt i plet. Een ting: Jeg var nødt til at omdøbe ID-kolonnen i ADGANGSTABEL, for ellers blive rs("id") associeret med id i ADGANGSTABEL. Kan det omgås, eller må ingen kolonner hedde det samme i to tabeller der bliver "blandet"?
Avatar billede sbm Nybegynder
28. januar 2003 - 17:19 #4
Det kan omgås på flere måder... Jeg er ikke helt sikker på hvilke af dem der virker op imod en Acces eller mySQL eller hvad du nu kører...

Man kan lave specifikke kolonnevalg istedet for bare at lave en SELECT * FROM
Dertil kan man så give de enkelte kolonnevalg et alias, som du derefter kan referere til.

Eksempel:
SELECT kolonne1 k1, kolonne2 k2 FROM TABEL

Kolonnerne hedder reelt kolonne1 og kolonne2, men i du kan efterfølgende referere til dem som k1 og k2. Det samme ville kunne gøres med ADGANSTABEL.id og SIDER.id

Dertil har du altid mulighed for at referere til kolonnenummer istedet for kolonnenavn, men det er ikke nær så pæn en løsning.
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
Kurser inden for grundlæggende programmering

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