webForumDet fria alternativet

Fel i en update Loop

ASP

14 svar · 309 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Jag kör:

<%
if request.querystring("change") = "true" then
	SQL = "select * from forums"
	Set RS22 = Databas.Execute(SQL)
	Do Until RS22.eof
		SQL = "UPDATE forums set topics = "& trim(request.form("order")) &" where ID = "& trim(request.form("id"))
		Set RS223 = Databas.Execute(SQL)
	RS22.MoveNext
	Loop
	RS22.close
end if

%>

på denna kod:

<%
	SQL = "select * from forums order by topics"
	Set RS = Databas.Execute(SQL)
	SQL = "select count(*) as antal from forums"
	Set RS2 = Databas.Execute(SQL)

%>
<table><form method="post" action="sort.asp?change=true">
<% Do While NOT RS.EOF%><tr>
<% if rs("url") <> "" then %>
<td class="mess3">
<% elseif rs("info") <> "" then %>
<td>
<%else%>
<td class="topic">
<% end if%>
<%=rs("namn")%></td><td><input value="<%=rs("ID")%>" name="ID"><select name="order" size="1" class=mess3>
<% for i = 1 to rs2("antal") %><option value="<%=i %>"<% if rs("topics") = i then response.write " selected"%>><%=i%></option>
<%next%>
</select>
</td>
</tr>

<%
rs.movenext
Loop
%>

Problemet är när jag ska updatera min fina RS22 kod.. får jag:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement

ID = räknare
topics = tal

Medlem sedan juni 200032 967 inlägg
#2

Det första man gör när man får ett felmeddelande på en SQL-fråga är att skriva ut den med Response.Write istället för att exekvera den. Då kan man lätt se om variabelvärden saknas, exempelvis.

Alltså: hur ser det ut?

Medlem sedan dec. 200012 464 inlägg
#3

Du lägger ut många fält med samma namn (ID). Värdet i det fältet blir då en komma-separerad lista med alla idnummer.

Din update ser nog ut som

update forums set topics = 1,2,3,4 where id = 3,4,5,6

Du får antingen döpa fälten till olika namn (ID1,ID2,...) och hålla reda på hur många det finns eller så kan du göra split på värdet för att få tag på enskilda idnumrem eller så kan du indexera dig i fältet eller använda for each eller ...

Medlem sedan juni 20019 519 inlägg
#4

UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25

får jag... saken är.. jag ska kunna lägga in fler ID och sånt hela tiden...

Medlem sedan apr. 20012 427 inlägg
#5

Det hade kanske räckt med en av SQL-strängarna. :)

Medlem sedan juni 20019 519 inlägg
#6
SQL = " UPDATE forums set topics = "& request.form("skins") & " where ID = "& request.form("id")
response.write SQL
Set RS223 = Databas.Execute(SQL)

får detta:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

SQL:

UPDATE forums set topics = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 12, 13, 14, 16, 2, 3, 6, 7, 1, 4, 5, 9, 8, 21, 22, 19, 23, 24, 10, 11, 20, 15, 17, 18, 25

Medlem sedan jan. 20022 440 inlägg
#7

Voigtan: Du får nog köra en For each Item In Request.Form loop eller nåt, kika på denna tråden: http://www.webforum.nu/showthread.php?s=&threadid=50175

Medlem sedan juni 20019 519 inlägg
#8

jag får det inte att fungera.. och nu e allt helt knäppt :/

Medlem sedan dec. 19996 721 inlägg
#9

Vad är själva målet med det hela? Hur ser tabellerna ut? Vad ska in och varför?

Du har en loop...

SQL = "select * from forums"
	Set RS22 = Databas.Execute(SQL)
	Do Until RS22.eof
		SQL = "UPDATE forums set topics = "& trim(request.form("order")) &" where ID = "& trim(request.form("id"))
		Set RS223 = Databas.Execute(SQL)
	RS22.MoveNext
	Loop
	RS22.close

Vad är syftet med den? Som den ser ut nu så kör den exakt samma SQL-sats X antal gånger, där X är antalet rader i tabellen "forums".

mvh
emission

Medlem sedan juni 20019 519 inlägg
#10

jag ska med hjälp av denna kod kunna "byta" ordning i ett forum...

Medlem sedan dec. 19996 721 inlägg
#11

Ok, men vad är förutsättningarna?

Medlem sedan juni 20019 519 inlägg
#12

vad menar du med det?

Medlem sedan dec. 19996 721 inlägg
#13

Hur ser tabellerna ut, och vad vill du ska ändras i dem?

Medlem sedan juni 20019 519 inlägg
#14

ah!:
ID - räknare
namn - Namn på forum
topics - Vilken ordning som forumet ska lista..
Jag ska bara kunna ändra om "Topics" i denna kod..

Medlem sedan juni 20019 519 inlägg
#15

någon?
SQL =

UPDATE forums set topics = 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 where ID = 3, 4, 5, 7, 23, 24, 18, 19, 22, 25, 17, 21, 20, 12, 13, 10, 14, 15, 1, 2, 11, 6, 8, 9, 16

detta måste fungera på något sätt

	SQL = "UPDATE forums set topics = "& trim(request.form("order")) &" where ID = "& trim(request.form("id"))
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)