webForumDet fria alternativet

Kod fungerar ej om flera värden finns i array

ASP

1 svar · 379 visningar · startad av bigsky

Medlem sedan maj 2002821 inlägg
Frågan#1

Varför fungerar nedanstående kod endast när Arrayen innehåller endast ett tal och inte flera? T ex. fungerar den när Arrayen innehåller endast "20" men inte om Arrayen innehåller "3,4,16,20".

<% Call OpenConn()
Set rsGetActiveMenu = Conn.Execute("SELECT Id, PageId FROM tblMenuCat")
Do Until rsGetActiveMenu.EOF
a = Array(rsGetActiveMenu("PageId"))
For Each x In a
If x = Request.QueryString("lnkid") Then
  strActiveMenuId = rsGetActiveMenu("Id")
  strMenuImg = rsGetActiveMenu("Id")
  Exit Do
Else
  strActiveMenuId = "1"
  strMenuImg = "1"
End If
Next
rsGetActiveMenu.MoveNext
Loop
rsGetActiveMenu.Close : Set rsGetActiveMenu = Nothing
Call CloseConn %>
Medlem sedan dec. 19996 721 inlägg
#2

Det beror på att arrayen aldrig kommer att innehålla mer än ett element. Om rsGetActiveMenu("PageId") är "1" så kommer arrayen att innehålla ett element ("1") och om rsGetActiveMenu("PageId") är "1, 2, 3" så kommer arrayen att innehålla....... ETT element med värdet "1, 2, 3".

Om du vill få ut en array så är det

a=split(rsGetActiveMenu("PageId"),", ")

som gäller. Som sagt, det är inte så smidigt att lagra flera värden i en kolumn. Låt helst bli.

287 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
140 ms — ändringar (db)