09. november 2003 - 13:20Der er
27 kommentarer og 1 løsning
Tjek database om eksistens
Hej Eksperter
Jeg har to tabeller. Den ene med brugere [tabel X], og den anden med deres rettigheder [Tabel Y]. Der er flere sider, som de skal have rettigheder til, eks. et site om spil, og et site om film. I [tabel y] er der en række for hver site de har adgang til. Eks: --------------------- user site level 4 spil 2 4 film 3 5 spil 3 --------------------- Når jeg så vil redigerer i bruger nummer 4 eksempelvis, har jeg nogle radiobuttons, hvor fra man kan vælge deres level (2,3 og 4). --------------------- <tr> <td width="132" colspan="2"><font size="2">Spil</font></td> <td width="64"><input type="radio" value="2" name="spil"></td> <td width="58"><input type="radio" value="3" name="spil"></td> <td width="257"><input type="radio" value="4" name="spil"></td> </tr> <tr> <td width="132" colspan="2"><font size="2">Film</font></td> <td width="64"><input type="radio" value="2" name="film"></td> <td width="58"><input type="radio" value="3" name="film"></td> <td width="257"><input type="radio" value="4" name="film"></td> </tr> ---------------------
Det er så meningen at den skal tjekke [tabel y] om hvilke rettigheder brugeren har i den tabel. Det skal lige siges at har man tidligere valgt at brugeren ikke har rettigheder (value 4) så bliver der ikke registreret noget i databasen. Dvs. at scriptet skal tjekke om der findes en post i databasen med brugerens id og sitet værdi (eks. spil) - Hvis ikke skal: <input type="radio" value="4" name="spil"> være "checked".
Findes posten der i mod skal den finde den værdi eks. 2 og så gøre: <input type="radio" value="2" name="spil"> "checked".
strSQL = "Select TOP 1 from TABELY where id = " & bruger_id ' åben forbindelsen
if (not rs.bof) and (not rs.eof) then ' feltet eksisterer mysite = rs("site")
if len(rs("level")) = 0 then ' længden af indholdet af feltet level er 0 -> der står ikke noget -> brugeren har ikke rettigheder myvalue = "4" else myvalue = rs("level") end if %>
Mht "Top 1": Jeg bruger her Top 1, som vælger den først record/post. Jeg er ikke helt sikker på "Top 1", hvis det ikke virker, kan du prøve med "*" i stedet for "Top 1".
Mht "id =.." Jeg mener at når man tester/spørger til en værdi som er et tal, skal der ikke ' udenom.. eksempel: bruger_id er et tal: where id = " & bruger_id bruger_id er string/tekst: where id = '" & bruger_id & "'"
det ville være nemmer at overskue hvis du havde dine if-sætninger i asp kode, og smed resultat over en variabel.. derefter bruger du <%=variabelnavn%> i stedet for <% if rs_userperm1("level") = "3" Then response.write ("checked") End If%>
Thanx det virker - I hvert fald med den der ikke eksisterer - Hvad med de andre to? Jeg har nu:
<% Set RS_userperm1 = Server.CreateObject("ADODB.RecordSet") RS_userperm1.open "Select * from [user_permisions] WHERE user_id = " & RS_edit_personel("id") &" AND site = 1", Conn_crew, 1, 3
dim strNoRecord1 strNoRecord1 = "" if RS_userperm1.bof or RS_userperm1.eof then strNoRecord1 = " checked" end if %> <tr> <td width="132" colspan="2"><font size="2">Games</font></td> <td width="64"><font face="Trebuchet MS" size="2"> <input type="radio" value="2" name="games"></td> <td width="58"><font face="Trebuchet MS" size="2"> <input type="radio" value="3" name="games"></td> <td width="257"><font face="Trebuchet MS" size="2"> <input type="radio" value="4" name="games" <%=strNoRecord1%>> </td> </tr>
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.