Avatar billede mini-me Nybegynder
13. marts 2003 - 18:40 Der er 10 kommentarer og
1 løsning

Gennemløb

Hej Eksperter,

Jeg har et problem ;o) Jeg er igang med at lave noget script som skal teste om der findes noget i databasen, jeg kan give flg. oplysninger som i kan arbejde ud fra

Jeg har en database hvor jeg har 2 tabeller en som hedder sider, og en som hedder permissions

jeg vil nu have den til at gøre flg.

først finde ud af om der i dben findes en side som hedder test.asp og dets id samtidig er lig et id som findes i permissions.... og så bagefter vise hvad det er for et navn som står i permissions databasen....
Avatar billede tomh Nybegynder
13. marts 2003 - 18:45 #1
Noget i retning af:

Select permissions.navn from permissions inner join sider on permissions.id = sider.id where sider.navn = "test.asp"

Hvis det skal gøres mere præcist, må du lige vise detaljer om dine tabeller :-)
Avatar billede mini-me Nybegynder
13. marts 2003 - 18:53 #2
Har noget som ser såen her ud lige nu :

  pageAccessId = split(rs("Permissions"),",")
           
            response.Write(pageAccessId)
            response.End()
            for counter=1 TO pageAccessId
           
                mnuSQL = "SELECT * from Permissions where pagename='" & urlCheck & "' AND id=" & counter 
                set menuRS = conn.execute(mnuSQL)
                   
                    if menurs.eof or menurs.bof then
                    response.Write("sluk")
                    else
                   
                    response.Write(menurs("id"))
                    end if
            next   
                           
            set menuRS = Nothing



Jeg har en tabel(users) hvor jeg har mine brugere, i den tabel er der id | name | permissions. I Permissions bliver så listet eks. 1,3,5 som id'er på sider i tabellen permissions.

Jeg starter så med lige at splitte disse op, dvs jeg får 1,3,5 som den skal løbe igennem i mnuSQL = "SELECT * from Permissions where pagename='" & urlCheck & "' AND id=" & counter 

men jeg skal så have den til at stoppe genneløbet når jeg har fundet en "kombination" som virker... og hvis der ikke findes nogen i gennemløbet skal man have en fejl....
Avatar billede tomh Nybegynder
13. marts 2003 - 19:18 #3
Der er flere måder, hvis jeg har forstået, hvad du mener.

Altså: Hvis der kun kommer "response.Write("sluk")" ud af det, skal du have en fejl - ellers skal du stoppe gennemløbet af for-løkken, når den første "response.Write("sluk")" kommer?

I så fald: Hvis du finder en kombination, der virker kan du skrive "exit for". Dette vil hoppe ud af for-løkken.

For at give en fejl, hvis du ikke får en kombination kan du sætte en variabel (f.eks. kaldet match) til 0 inden du kører gennem løkken. Hvis du får et match sættes den til 1 inden du kører "exit for".

Så kan du efter løkken checke variablen. Hvis den er 0 var der ingen kombinationer, der virkede - er den 1 er der fundet en.
Avatar billede mini-me Nybegynder
13. marts 2003 - 19:23 #4
tomh: Kan du ive et eksempel er ikke helt med... men den skal kun lave "sluk" hvis der slet ikke findes nogen kombinationer...
Avatar billede tomh Nybegynder
13. marts 2003 - 19:38 #5
match = 0

for counter=1 TO pageAccessId
           
                mnuSQL = "SELECT * from Permissions where pagename='" & urlCheck & "' AND id=" & counter 
                set menuRS = conn.execute(mnuSQL)
                   
                    if menurs.eof or menurs.bof then
                    response.Write("sluk")
                    else
                   
                    response.Write(menurs("id"))
                    match = 1
                    exit for

                    end if
            next   
            if match = 0 then
                ---- fejl!!!
            end if
Avatar billede mini-me Nybegynder
13. marts 2003 - 20:07 #6
Hmmm så bliver jeg nød til at ændre lidt på min lbound to ubound... for den skal ikke ændre på id'erne.. men hvorfor virker dette ikke? mig der er kørt fast og træt eller hvad??

do until rs.eof or rs.bof
            pageAccessId = split(rs("Permissions"),",")
            response.Write(pageAccessId)
            rs.movenext
            loop
Avatar billede mini-me Nybegynder
13. marts 2003 - 20:15 #7
argh shit... skal sq da ikke loope i rs.eof... den skal loop for hvert tal den finder i pageAccessId... men how ??
Avatar billede mini-me Nybegynder
13. marts 2003 - 20:45 #8
Fik det til at virke ;-) Bare mig som er begyndt at være træt.. du får point.. smid et svar..
Avatar billede mini-me Nybegynder
13. marts 2003 - 20:49 #9
Og dog... virker ikke... kun hvis det "stemmer" fra en start... hvis jeg eks. i min db skriver istedet for 1,2,3 3,2,5,1 ... no go...
Avatar billede mini-me Nybegynder
13. marts 2003 - 20:58 #10
HAr det her nu
pageAccessId = split(rs("Permissions"),",")
            match = 0
            for i = 0 to ubound(pageAccessId)
           
              mnuSQL = "SELECT * from Permissions where pagename='" & urlCheck & "' AND id=" & pageAccessId(i)
              set menuRS = conn.execute(mnuSQL)
              if rs.eof or rs.bof then
                  match = 0
              else
                match = 1
                exit for
                end if
           
            next   
            if match = 0 then
              response.Write("I loopet blev der ikke fundet nogle kombinationer...")
            end if
           
            if match = 1 then
                response.Write("der blev fundet en ")
            end if
            response.End()
Avatar billede mini-me Nybegynder
07. april 2003 - 12:53 #11
Lukker
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