Jag har ingen aning om ifall det är möjligt att göra som du vill, men skulle jag testa, skulle mitt where-villkor se ut på följande vis:
where f_ID in (113, 124, 125,....)
6 svar · 301 visningar · startad av Sico
Ett turnerings-system.
När jag ska skriva in alla resultat så loopar jag fram alla anmälda spelare med 2 inputrutor bakom där pris och placering skall anges. Jag fyller i alla spelarnas placeringar respektive pris samtidigt och skickar iväg. Men hur ska jag få in detta i databasen?
playerID = Request.Form("ID")
Money = Request.Form("Money")
EndPos = Request.Form("EndPos")
strSQL = "UPDATE t_TourReg SET " _
& " f_Money = '"& Money &"', f_EndPos = '"& EndPos &"' Where f_ID=" & playerID & ""
[b]Connect.Execute( strSQL )[/b]
Jag får felmeddelande:
fel skrev:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (komma) i frågeuttrycket 'f_ID=113, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145'.
/badbet/turnering.asp, line 404
Skriver jag ut mina Request.Form's så visar dom rätt, dvs.
response.write skrev:
113, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 10000, , 200 SEK, 300 SEK, , , , , , 700 SEK, , , , , , , , , , , , 11, 10, 5, 3, 2, 7, 21, 22, 14, 23, 1, 19, 12, 8, 6, 15, 17, 4, 13, 18, 16, 24, 20
Första gången jag ger mig in på detta.
Jag har ingen aning om ifall det är möjligt att göra som du vill, men skulle jag testa, skulle mitt where-villkor se ut på följande vis:
where f_ID in (113, 124, 125,....)
for i = 0 to request.form("id").count - 1
playerID = Request.Form("ID")(i)
Money = Request.Form("Money")(i)
EndPos = Request.Form("EndPos")(i)
strSQL = "UPDATE t_TourReg SET " _
& " f_Money = '"& Money &"', f_EndPos = '"& EndPos &"' Where f_ID=" & playerID
connect.execute strSQL
next
Tack, men.
fel skrev:
Request-objekt, ASP 0105 (0x80004005)
Ett matrisindex ligger utanför intervallet.
/badbet/turnering.asp, line 398
playerID = Request.Form("ID")(i)
Jaså, då hmm
playerID = split(Request.Form("ID"),",")
Money = split(Request.Form("Money"),",")
EndPos = split(Request.Form("EndPos"),",")
for i = 0 to ubound(playerID)
strSQL = "UPDATE t_TourReg SET " _
& " f_Money = '"& Money(i) &"', f_EndPos = '"& EndPos (i) &"' Where f_ID=" & playerID (i)
connect.execute strSQL,,128
next
Jag förutsätter att fälten innehåller lika många värden.
HEJ!
Av någon anledning får du ett array-fel (matris=array).
Eftersom du använder IN vet du nog inte vilken som blir fel, men troligtvis på slutet.
Titta noga på dem och se om det löser problemet, annars får du loopa igenom frågan utan IN.
Splitta arrayen på ", ", loopa igenom arrayen med en UPDATE per loop. Till sist blir det fel, lös det ;)
Tack LarsG
Du är en kung.