Avatar billede jens_k Nybegynder
28. juni 2002 - 02:25 Der er 8 kommentarer og
1 løsning

Array

Hejsa...

Jeg har et problem med et lille ASP Script..

Jeg har et Array som f.eks indeholder tallene :
200, 201, 202

Arrayet hedder f.eks ArrJK

Jeg har så et loop :

do while not rs.eof
If not RS("ID") IN ArrJK then
Response.Write "Eksitere ikke"
Else
Response.Write "Eksitere"
End IF
rs.movenext
loop

Der hvor det går galt er :
If not RS("ID") IN ArrJK then

I min SQL Streng kan jeg jo godt bruge "IN", men det kan jeg ikke i min IF sætning. Hvad kan jeg gøre istedet ?

Jens K
Avatar billede tmceu Praktikant
28. juni 2002 - 02:37 #1
Måske noget i denne stil?

do while not rs.eof

bCheck = False

For i = 0 To UBound(ArrJK)
  If RS("ID") = ArrJK(i) Then
  bCheck = True
  Exit For
  End If
Next

If bCheck = True Then
response.write "eksisterer"
Else
response.write "eksisterer ikke"
End If

rs.movenext
loop
Avatar billede jens_k Nybegynder
28. juni 2002 - 02:43 #2
Nu har jeg ikke såen vildt meget forstand på ASP... Jeg er lidt i tvivl om det er et Array jeg har..

Kan jeg godt bare skrive

ArrJK = 200,201 ?

De tal den skal tjekke for ligger nemlig i min Querystring..

Jens K
Avatar billede tmceu Praktikant
28. juni 2002 - 02:58 #3
Nej ikke helt :-)

ArrJK = Split("200,201,202")

Det laver et array på 3 elementer (første element 0)

Du skal dog passe på med mellemrum, hvis din streng eks. indeholder "200, 201,202" vil 2. element blive " 201" som ikke kan sammenlignes med "201". Dette kan eks. løses sådan:

ArrJK = Split(Replace(Session("MyValues"), " ", ""), ",")
Avatar billede jens_k Nybegynder
28. juni 2002 - 03:08 #4
Okay det virker ikke.. Jeg er ikke lige så spids til det her ASP..

Mit Array :
ArrJK = Split("198,200,201")

Mit Loop :
<% do while not rs.eof %>
          <tr>
            <%
            bCheck = False
           
            For i = 0 To UBound(ArrJK)
            If RS("ID") = ArrJK(i) Then
              bCheck = True
              Exit For
              End If
            Next

            If bCheck = True Then %>
            <td><a href="folder_open.asp?id=<%= RS("ID")%>"><img border="0" src="../img/FileMenuPlus.jpg"><img border="0" src="../img/FileMenuMap1.jpg"></a></td>
            <% Else %>
            <td><a href="folder_open.asp?id=<%= RS("ID")%>"><img border="0" src="../img/FileMenuMinus.jpg"><img border="0" src="../img/FileMenuMap2.jpg"></a></td>
            <% End If %>
            <td><font face="Verdana" size="1" color="#7E9BB5">
            <a style="color: #7E9BB5; text-decoration: none" href="folder_open.asp?id=<%= RS("ID")%>"><%= RS("Title")%></a></font></td>
          </tr>
        <%
       
        rs.movenext
        loop
        %>


Hvad går der galt ?

Skal nok afsætte flere point..

Jens K
Avatar billede tmceu Praktikant
28. juni 2002 - 03:20 #5
Hvilke fejl får du ?

Problemet er muligvis så simpelt som dette:

<% do while not rs.eof %>
          <tr>
            <%
            bCheck = False
            myID = RS("ID")

           
            For i = 0 To UBound(ArrJK)
            If myID = ArrJK(i) Then
              bCheck = True
              Exit For
              End If
            Next

            If bCheck = True Then %>
            <td><a href="folder_open.asp?id=<%= myID%>"><img border="0" src="../img/FileMenuPlus.jpg"><img border="0" src="../img/FileMenuMap1.jpg"></a></td>
            <% Else %>
            <td><a href="folder_open.asp?id=<%= myID%>"><img border="0" src="../img/FileMenuMinus.jpg"><img border="0" src="../img/FileMenuMap2.jpg"></a></td>
            <% End If %>
            <td><font face="Verdana" size="1" color="#7E9BB5">
            <a style="color: #7E9BB5; text-decoration: none" href="folder_open.asp?id=<%= myID%>"><%= RS("Title")%></a></font></td>
          </tr>
        <%
       
        rs.movenext
        loop
        %>

Der kan være problemer med at læse den samme værdi fra databasen flere gange, så jeg har smidt den i en variabel.
Avatar billede jens_k Nybegynder
28. juni 2002 - 03:26 #6
Virker stadig ikke.. Jeg får ikke nogen ASP fejl.. Den bruger bare ikke de rigtig Grafik stykker, ergo finder den ikke ud af om ID nummeret eksitere i Arrayet..

Jens K
Avatar billede jens_k Nybegynder
28. juni 2002 - 04:07 #7
Eller.. Den tror at alle ID nr eksitere i Arrayet.. Og det gør de jo ikke.. Så den kan ikke fatte at bruge False..

Jens K
Avatar billede jens_k Nybegynder
28. juni 2002 - 06:07 #8
Jeg er så kommet en lille smule videre nu...

If myID = int(ArrJK(i)) Then

Jeg har skrevet int foran, og nu virker det lidt..

Problemet er bare det kun virker ved den som står forest i arrayet.. Og det er ikke meningen..

Du skriver selvfølgelig det med mellemrum øverst, synes bare ikke jeg kan få det du har skrevet til at virke..

Så skal bruge lidt hjælp.. Kan du ikke lige skrive replace strengen så jeg bare kan paste den ind ?

Jens K
Avatar billede jens_k Nybegynder
28. juni 2002 - 06:09 #9
Glem det.. Har fået det til at virke..

Mange tak for hjælpen..

Jens K
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