webForumDet fria alternativet

hämta värde från annan tabell och få som kolumn i en annan tabell

Databaser & SQL

4 svar · 296 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

jag har dessa tabeller:
----------------------
meny
menyID
menyNamn
menyLank
menyHuvud
menyBildbehorig
menyBildejbehorig
----------------------

----------------------
sidbehorighet
menyID
sida
projektanvandarTyp
behorighet
----------------------

Nu vill jag ur tabellen sidbehorighet ta bort menyID och skriva om denna sql-fråga så att jag kan i mitt recordsett se om jag är behörig att visa en viss menypost. När jag loopar igenom mitt recordsett vill jag sedan kunna kolla om behorighet är lika med 1 för behörig eller 0 för icke behörig.

sqlString = "Select m.menyID, m.menyHuvud, m.menyNamn, m.menyLank, m.menyTarget, m.menyBild, m.menyBildGray, s.behorighet as menyBehorighet " &_ 
    "From meny as m, sidBehorighet as s " &_
	"Where (InStr(1,m.menyLank,s.sida) > 0 " &_
	"Or m.menyLank is NULL) " &_
	"And m.menyID = s.menyID " &_
	"And s.projektAnvandareTyp = "& fixaTecken(Session("projektAnvandareTyp")) &" " &_
	"Order By m.menySortering ASC"
	sqlListaMeny = sqlString

Den ska alltså gå igenom menyn post för post och kolla om menyLank finns i sida på sidbehorighetstabellen. De behöver inte överensstämma helt utan instr ska användas för jämförelsen.

Ifall sidan finns behorighetstabellen och min användartyp har behorigheten 1 då ska ett fält behorghet sättas till 1 annars ska det fältet sättas till 0.

Alltså jag vill när jag loopar igenom menyn kunna göra jämförelsen:

while not menyRS.Eof
  if menyRS("behorighet") = 1 Then
   'visa menyn
  Else
  'Visa inte menyn
 End If
 menynRS.MoveNext
Wend

Förstår ni?

Medlem sedan dec. 200012 464 inlägg
#2

Förstår ni?

Njae.

De behöver inte överensstämma helt utan instr ska användas för jämförelsen.

Att bygga en datamodell på den typen av samband är aldrig bra. Det kommer att bli hur segt som helst om det är lite datamängder.

Varför lägger du inte till villkoret

behorighet = 1

direkt i sql-frågan?

Medlem sedan jan. 20013 406 inlägg
#3

LarsG skrev:

Varför lägger du inte till villkoret

behorighet = 1

direkt i sql-frågan?

Jag vill gråmarkera menyn ifall behörighet inte finns.

Jag vill med sidbehorighetstabellen även kontrollera behorighet för sidor som även inte finns i menyn.

Anledningen till att jag vill använda instr är för att i behörighetstabellen så är det en relativsökväg som står men i menyn så kan en absolut sökväg stå.

Medlem sedan dec. 200012 464 inlägg
#4

Vad är problemet då, frånsett att du nog behöver en typkonvertering

if clng(menyRS("behorighet")) = 1 Then

?

Medlem sedan jan. 20013 406 inlägg
#5

Alltså sql-satsen och så fungerar nu som den är men jag vill plocka bort menyID ur sidbehorighets-tabellen eftersom sida och lank redan håller reda på kopplingen mellan de två tabellerna.
Problemet är bara att ja vill kunna se om behorigheten antingen är 0 eller 1 sedan när jag lopar igenom menyn

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)