webForumDet fria alternativet

göra variablar

ASPur ASP

3 svar · 250 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Kommer inte på något bra sätt på det jag vill göra. Så därför frågar jag här. Det jag vill göra är att när en medlem loggar in på en sida så ska jag kolla om session("username") finns i kolumnen varvar i tabellen varvningar. Om den finns i den kolumnen så vill jag kolla vad namnet är i kolumnen agare i den posten. Och göra det namnet som finns i kolumnen agare till variablen varvade. Men om det finns flera session("username") i kolumen varvar så får jag göra flera variablar på något sätt. Säg till om ni inte fattar så kan jag beskriva mer.

Medlem sedan feb. 200112 078 inlägg
#2

Detta använder man väl en array till, för att göra det smidigast.

SQL = "SELECT * FROM varvningar WHERE varvar = '" & session("username") & "'"
set rs = conn.execute(SQL)

do until rs.eof
intAntal = intAntal + 1
rs.movenext
loop

rs.movefirst

dim varArray()
redim varArray(intAntal)

i = 0
do until rs.eof 
varArray(i) = rs("agare")
i = i + 1
rs.movenext
loop

rs.close
set rs = nothing

Hel otestat. Om jag förstått det rätt.

varArray(0) innehåller första värdet
varArray(1) innehåller andra värdet
osv.. (arrayer börjar alltid räkna på 0)

Förutsätter att du skapar en conn-string ovanför. Kunde gjorts utan fullösningen med att räkna antalet poster, genom att öppna med annan cursortype, men jag orkade inte. ;)

Redigerat) Felkodning.. :l

Medlem sedan feb. 20011 498 inlägg
#3

Denna kod fungerar bra. Men nu vill jag att agare som ju är
varArray(i)

ska sättas in i denna kod denna kod:

SQL = "SELECT * from members where username = '"&varArray(i)&"'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

poang = RecSet("poang") + 1

RecSet.Close

strSQL="UPDATE members SET poang = "& poang &"  WHERE username = '"&varArray(i)&"' "
Connect.execute (strSQL)

Och denna kod ska ju göras så många gånger som det finns varArray(i)

och om det inte finns någon varArray(i) så ska inte koden köras.

Medlem sedan feb. 200112 078 inlägg
#4

Då kör vi en for-slinga:


for i = lbound(strArray) to ubound(strArray)

SQL = "SELECT * from members where username = '"&varArray(i)&"'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

poang = RecSet("poang") + 1

RecSet.Close

strSQL="UPDATE members SET poang = "& poang &"  WHERE username = '"&varArray(i)&"' "
Connect.execute (strSQL)

next

Funktionerna lbound() och ubound() returnerar ett värde som motsvarar den första postens nummer i arrayen samt den sista. Detta för att kunna loopa igenom hela arrayen utan att hamna utanför gränserna när det gäller hur många poster den innehåller.

131 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)