Avatar billede mettecarsten Nybegynder
24. november 2005 - 23:33 Der er 5 kommentarer og
1 løsning

Loop i asp

Hej eksperter

Jeg har brug for lidt hjælp til at indsætte en korrekt loop.

Jeg har en mysql-data med en tabel, Sogebyer, som har rækkerne Id, By og Omraade.

Der er lidt over 500 id-nr., som en loop vil være meget praktisk :-)

Hvis jeg vil gøre det manuelt, ville koden være:

<%

Aakirkeby = Request.QueryString("Aakirkeby")
if Aakirkeby = "ON" Then
id = 1
end if

Allinge = Request.QueryString("Allinge")
if Allinge = "ON" Then
id = 2
end if

osv. frem til ca. 500

%>

Jeg har prøvet en loop ala (har husket forbindelse til databasen):

<%

SQL = "Select * from Sogebyer where Omraade = '' order by Id"

Set rs = Conn.Execute(SQL)

%>

<%
Do
%>

<%

rs("By") = Request.QueryString(" & rs("By") &")
if rs("By") = "ON" Then
id = rs("Id")
end if

%>

<%
  ' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
'Conn.Close
'Set Conn = Nothing
%>

Er der nogen, som kan rette til noget mere rigtigt?

På forhånd tak.
Avatar billede mettecarsten Nybegynder
25. november 2005 - 00:22 #1
Har lige lidt supplerende, da jeg nu prøver noget andet. Hvordan skal nedenstående linie laves om, så By kan være lig et ord og ikke som nu et tal?

Id = f.eks. "Viborg"
SQL3 = "Select * from Sogebyer Where By = " & Id
Avatar billede nielle Nybegynder
25. november 2005 - 06:56 #2
By er et reserveret ord i MySQL (i ORDER BY), og skal derfor omgives med `-tegn hvis du vil bruge det som feltnavn. Ord skal omgives med '-tegn:

SQL3 = "Select * from Sogebyer Where `By` = '" & Id & "'"
Avatar billede nielle Nybegynder
25. november 2005 - 07:04 #3
Løkken:

<%
SQL = "SELECT * FROM Sogebyer WHERE Omraade = '' ORDER BY Id"
Set rs = Conn.Execute(SQL)

While Not rs.EOF
    By = rs("By")
    ByON = Request.QueryString(By)
    If ByON = "ON" Then
        Id = rs("id")
    End If

    rs.MoveNext
Loop
%>

Det eneste problem jeg kan se med denne er at Id'et bliver overskrevet med noget nyt hver gang at If-sætningen er sand.
Avatar billede mettecarsten Nybegynder
25. november 2005 - 10:20 #4
Jeg kan desværre ikke helt få det til at virke, men jeg er helt sikker på, at det er mig :-)

Hele kernen er, at der fra en side sendes et bynavn med videre, f.eks. http://www.xx.dk/xx/by.asp?Aakirkeby=ON. Her vil Aakirkeby være Request.QueryString. Kan jeg egentlig bare ikke sende "Aakirkeby" videre som session. Jeg har prøvet med:

<%
Do
%>
<% Session("hid") = rs3("By") %>
<% Response.write "<a href = by.asp?" & rs3("By") & "=ON>" & "<font face='Arial' color='" & rs("farvekode1") & "' size='2'><b>" & rs4("Stor") & " " & rs3("By") & "</b></font></b></a>" & "</a>"
%>
<br>
<%
  ' Gå til næste Record i rs
rs3.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs3.EOF

' Luk databaseforbindelse
'Conn.Close
'Set Conn = Nothing
%>

Det fungerer bare ikke helt så godt, da session ikke tager den pågældende by i loopen, men den sidste by i databasen.

Jeg håber, at ovenstående giver mening :-)
Avatar billede mettecarsten Nybegynder
25. november 2005 - 11:22 #5
Jeg har løst problemet ved at sætte Id med i url-strengen :-)

Smid et svar, da du har fortjent pointene.
Avatar billede nielle Nybegynder
25. november 2005 - 14:50 #6
Svar :^)
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