webForumDet fria alternativet

uppdatera en tabell med loop

ASPur ASP

4 svar · 266 visningar · startad av rollo

rolloMedlem sedan aug. 2001203 inlägg
#1

Hej!

Jag håller på att flytta om i strukturen på min sida. Tanken var att då göra en sida där all information visas och där jag kan ändra värdet på variabeln som styr tillhörigheten.

Tanken var att köra en loop över UPDATE satsen, men jag får det inte att funka!

Jag har sökt efter lösningar här, men inte lyckats med dem. SQL-strängen blir fel, UPDATE db_i SET t_id = '1, 2, 3, 4, 5, 6' WHERE id =846, 835, 807, 788, 528, 511, den delar inte upp värdena i formen.

Så här ser sidan för visning och fält ut

		<%
			a = ("bgcolor=ffffff")
			b = ("bgcolor=efefef")
			c = a
		%>  							
      	<% i = 1 %>
		<% Do until a6.EOF
		tmp_t_id	= a6("t_id")
		SQL = " select * from db_h where id = " & tmp_t_id
		Set DataConn = Server.CreateObject("ADODB.Connection")
		DataConn.Open Application("koppling")
		Set cmdTemp = Server.CreateObject("ADODB.Command")
		Set a11 = Server.CreateObject("ADODB.Recordset")
		cmdTemp.CommandText = SQL
		Set cmdTemp.ActiveConnection = DataConn
		a11.Open cmdTemp, , 1, 1		
		i = i + 1 
		%>
		<%i = i + 1%>
        <tr><td colspan="2" <%=c%>>
        <font face="Verdana,arial" size="1">
        <b><%= a6("falt01")%> --- <%=a6("id")%></b>
        </td></tr>
        <tr><td colspan="2" <%=c%>>
        <font face="Verdana,arial" size="1">
	        <%
	        rub = a6("text01")
			maxLength = 75
			if len(rub) > maxLength then
			response.write left(rub,maxLength) & "..."
			else
			response.write rub
			end if
			%>
		<br>
        <i>(<%=a6("falt03")%>,   <%=a11("avd")%>) -  <%=a6("falt04")%> &nbsp;<%= a6("falt05")%></i>
		</td></tr>
        <tr><td colspan="2" height="20" <%=c%>>
		<INPUT type="text" id=text1 name=t_id_n maxlength="3" size="5">
		<INPUT type="text" id=text1 name=id maxlength="3" size="5" value="<%=a6("id")%>">
		<br>
		</td></tr>
		<tr><td colspan="2" bgcolor="000000"></td></tr>
 	  			<%if (c = a) then %>
					<% c = b %>
				<%else%>
					<% c = a%>
				<%end if%>         
    <%
	a6.MoveNext
	Loop	
	%>

Update sidan ser ut så här

	temp_t_id			   = request.Form("t_id_n")
	temp_id	   				= request.Form("id")

	For Each Item In Request.Form

	SQL = "UPDATE db_i SET t_id = '"& temp_t_id&"' WHERE id ="& temp_id
		'Set DataConn = Server.CreateObject("ADODB.Connection")
	'DataConn.Open Application("koppling")
    'Set cmdTemp = Server.CreateObject("ADODB.Command")
    'Set a6 = Server.CreateObject("ADODB.Recordset")
	'cmdTemp.CommandText = SQL
'    Set cmdTemp.ActiveConnection = DataConn
    'a6.Open cmdTemp, , 1, 1
	
response.write(sql)
response.write("<br>")

	Next

tackar!

rollo

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2
idArray = split(request.form("t_id_n"))
idArray2 = split(request.form("id"))

for iLoop = lbound(idArray) to ubound(idArray)
   sql = "UPDATE db_i SET t_id = '" & idArray(iLoop) & "' WHERE id = " & idArray2(iLoop)
   'conn.execute(sql),,128
next

Erase idArray
Erase idArray2
rolloMedlem sedan aug. 2001203 inlägg
#3

:birp :birp :birp

Det funkade skitbra! Tack OveRRide!
Jag var dock tvungen att modifera lite, då kommatecknet från strängen kom med!

Lägger koden nedan om någon skulle behöva samma sak

idArray = split(request.form("t_id_n"))

idArray2 = split(request.form("id"))
i = 0
for iLoop = lbound(idArray) to ubound(idArray)

if i = ubound(idArray) then
   varde = left(idArray(iLoop),len(idArray(iLoop)-1))
   sql = "UPDATE db_i SET t_id = '" & varde & "' WHERE id = " & idArray2(iLoop)
else
   varde = left(idArray(iLoop),len(idArray(iLoop)-1))
   varde_id = left(idArray2(iLoop),len(idArray2(iLoop)-1))
   sql = "UPDATE db_i SET t_id = '" & varde & "' WHERE id = " & varde_id
end if

   
   Set DataConn = Server.CreateObject("ADODB.Connection")
	DataConn.Open Application("koppling")
    Set cmdTemp = Server.CreateObject("ADODB.Command")
    Set a6 = Server.CreateObject("ADODB.Recordset")
	cmdTemp.CommandText = SQL
    Set cmdTemp.ActiveConnection = DataConn
    a6.Open cmdTemp, , 1, 1
   
   
   
i = i + 1 
next

Erase idArray
Erase idArray2
OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

:)

MickeA.comMedlem sedan feb. 20034 441 inlägg
#5

Nu väcker jag en tråd som är gammal som gatan, men måste lösa det här.
Jag måste (vill) lösa en grejj på samma sätt som du ovan, men får inte till det alls.
Skillnaden är att jag har fyra formulärsfält, som jag provat lägga in, men utan framgång.
Har även provat att köra koden ovan rakt av, med bara två fält, men får då ett felmess:

Inkompatibla typer: 'idArray(...)'

på raden:

 varde = left(idArray(iLoop),len(idArray(iLoop)-1))

Vad gör jag för fel?

126 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)