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 %>
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