webForumDet fria alternativet

hjälp med loop

ASP

3 svar · 196 visningar · startad av room

Medlem sedan mars 2001270 inlägg
Frågan#1

Hejsan igen vänner.

Jag har ett problem med en loop inuti ett script om någon kan hjälpa mig lite så vore jag tacksam..

Jag vill sätta ihop följande kod till en Do Until intX = 10 (exempelvis)

OBS: detta är endast loopen två gånger. I själva verket ska detta skrivas ut 10 gånger men det tar så mycket plats. Ni förstår säkert.

IF request("list_option") = 1 then
 	IF Len(ProduktData("options1")) > 0 then
		posOption1 = instr(ProduktData("options1"), ":")
		Response.Write (Len(ProduktData("Options1")) - PosOption1)
		newOption1 = Right(ProduktData("options1"), (Len(ProduktData("Options1")) - PosOption1))
		ProduktData("options1") = Request("option_name") & ":" & newOption1
	Else ProduktData("options1") = Request("option_name") & ":"
	End IF
End IF

IF request("list_option") = 2 then
	IF Len(ProduktData("options2")) > 0 then
		posOption1 = instr(ProduktData("options2"), ":")
		Response.Write (Len(ProduktData("Options2")) - PosOption2)
		newOption2 = Right(ProduktData("options2"), (Len(ProduktData("Options2")) - PosOption2))
		ProduktData("options2") = Request("option_name") & ":" & newOption2
	Else ProduktData("options2") = Request("option_name") & ":"
	End IF
End IF

// Daniel H

------------------
// room

Medlem sedan dec. 200012 464 inlägg
#2

Något så här kanske?

for number = 1 to 10
IF Len(ProduktData("options" & number)) > 0 then
   posOption1 = instr(ProduktData("options" & number), ":")
   Response.Write (Len(ProduktData("Options" & number)) - PosOption1)
   newOption1 = Right(ProduktData("options" & number), (Len(ProduktData("Options" & number)) - PosOption1))
   ProduktData("options" & number) = Request("option_name") & ":" & newOption1
Else 
   ProduktData("options" & number) = Request("option_name") & ":"
End IF
next

Jag förstod inte vad request("list_option") betydde i sammanhanget.

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 2001270 inlägg
#3

njaee.. inte så riktigt. Grejjen är att jag vill att alla 1'or ska bytas mot tvåor i loopen. Jag ska nämligen kolla vilket fält i databasen som ska uppdateras och beroende på om det är fält 1 så ska fält 1 i databasen uppdateras osv.

------------------
// room

Medlem sedan dec. 19996 721 inlägg
#4

IF len(request("list_option"))>0 then
strCol="options" & request("list_option")
IF Len(ProduktData(strCol)) > 0 then
posOption = instr(ProduktData(strCol), ":")
Response.Write (Len(ProduktData(strCol)) - posOption)
newOption = Mid(ProduktData(strCol), posOption+1)
ProduktData(strCol) = Request("option_name") & ":" & newOption
Else ProduktData(strCol) = Request("option_name") & ":"
End IF
End IF

alternativt kan man lösa med en SQL-sats, med lite SUBSTRING och CHARINDEX

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)