Jag vet inte om det beror på detta, men om kolumnen ID är INT eller liknande så ska du inte ha några apostrofer runt det värdet.
WHERE ID = " & Request.Querystring("ID")
12 svar · 219 visningar · startad av ReloadMaster
Någon som kan hjälpa mig hitta felet här:
<%
If Request.Querystring("rosta") = "ja" Then
db = Server.MapPath("omrostning.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& db
Dim SQLUpdate, nummer
nummer = Request.Querystring("alternativ")
SQLUpdate = "UPDATE omrostning SET roster"&nummer&"=roster"&nummer&"+1 WHERE ID='" & Request.Querystring("ID") & "'"
Conn.Execute SQLUpdate
Response.Redirect("omrostning2.asp?rosta=ett")
%>
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/omrostning/omrostning2.asp, line 126
125&126 är:
SQLUpdate = "UPDATE omrostning SET roster"&nummer&"=roster"&nummer&"+1 WHERE ID='" & Request.Querystring("ID") & "'"
Conn.Execute SQLUpdate
Jag vet inte om det beror på detta, men om kolumnen ID är INT eller liknande så ska du inte ha några apostrofer runt det värdet.
WHERE ID = " & Request.Querystring("ID")
Berodde inte på det...
Det verkar som scriptet fastnar där innan för den uppdaterar varken värdet eller skickar vidare till ursprungsidan
Vad är rösterfälten i tabellen för datatyp?
Får du samma felmeddelande när du gör enligt Skarres förslag?
Länken blir:
omrostning_rosta.asp?id=2&alternativ=2rosta=ja
Nu får jag inget felmeddelande men roster2 som ska uppdateras med 1 uppdateras inte och jag skickas inte till omrostning.asp
Länken skall väl ändå bli:
omrostning_rosta.asp?id=2&alternativ=2**&**rosta=ja
Ops, klumpigt ;)
Aja när vi ändå är i farten undrar jag om någon kunde hjälpa mig lägg in så att när någon har röstat så lägger den in en cookie som baserar sig på omröstningens ID
Och som sedan kollar om användaren har röstat eller inte...
EDIT: En fråga till om jag tar bort &rosta=ja kan jag använda typ:
If Request.Querystring("ID") = RecSet("ID") Then
eller går det på något annat sätt?
Eftersom jag vill lägga in sparningsgrejen i samma fil som resten av omröstningen...
contr = Request.Cookies("voted")("check")
If contr = RecSet("ID") Then
'Du har redan röstat ju!
Else
Response.Cookies("voted")("check") = RecSet("ID")
Response.Cookies("voted").Expires = Date + 365'eller nåt
' Tack för din röst!
End If
Hmm... verkar vara problem för den verkar inte vilja skapa cookien...
<%
If Request.Querystring("rosta") = "ja" Then
Dim Conn, SQL1
db = Server.MapPath("omrostning.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& db
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL1 = "SELECT * FROM omrostning WHERE ID= " & Request.Querystring("id") & " "
RecSet.Open SQL1, Conn
contr = Request.Cookies("voted")("check")
If contr = RecSet("ID") Then
Response.Redirect("omrostning2.asp?rostat=ja")
Else
Dim SQL2, Siffra
nummer = Request.Querystring("alternativ")
SQL2="UPDATE omrostning SET roster"&nummer&"=roster"&nummer&"+ 1 WHERE ID = " & Request.Querystring("ID")
Conn.Execute SQL2
Response.Cookies("voted")("check") = RecSet("ID")
Response.Cookies("voted").Expires = Date + 31
Response.Redirect("omrostning2.asp?rostat=ja")
RecSet.Close
Set RecSet = Nothing
Conn.close
Set Conn = Nothing
End If
End If
%>
Hjälp?