webForumDet fria alternativet

Plocka fram värden ur kommaseparerad variabel ?

ASP

7 svar · 251 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#1

Hej hopp! :)

Hur plockar man fram värdena, ett i taget, ur en kommaseparerad variabel.

Tex: boxes=100420, 100401, 100403, 100405

(Detta för att jag ska plocka fram motsvarande poster ur en db, där en kolumn har detta värde)

Medlem sedan sep. 2002366 inlägg
#2
boxes = "100420, 100401, 100403, 100405"
box = Split(boxes,",")

for i=0 to UBound(box)
	Response.Write Trim(box(i)) & "<br>"
next

ska nog gå ganska bra

-Eitraz

Medlem sedan nov. 20017 144 inlägg
#3

Du kan göra så här om du skall radera posterna:

<%	
Dim kId,con,xBoxar
kId = request.form("boxes")
Set con = Server.CreateObject("ADODB.Connection") 
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("Databasen.mdb")

'Ta bort poster med en loop
xBoxar = split(kId,",") 

For x = 0 To UBound(xBoxar)
sql = "delete from tabellen where kolumn=" & cint(xBoxar(x))
con.Execute sql,,128
next

con.Close 
Set con = Nothing 
%>
Medlem sedan dec. 200012 464 inlägg
#4

Du behöver inte dela upp den alls.

q = "select * from t where ic in (" & ksl & ")"

ksl = variabel som innehåller kommaseparerade värden.

om ic är numerisk.

Medlem sedan nov. 20017 144 inlägg
#5

Oj, det var ju smidigt!

Medlem sedan maj 20023 372 inlägg
#6

Ja, ic är numerisk. :)

Tack för all hjälp alla.

Medlem sedan nov. 20017 144 inlägg
#7

om ic är numerisk.

Annars:

q = "select * from t where ic in ('" & ksl & "')"

Eller?

Medlem sedan dec. 200012 464 inlägg
#8

Nej, inte riktigt

q = "select * from t where ic in ('" & replace(ksl,",","','") & "')"
253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)