mackanz Medlem sedan sep. 2003 443 inlägg Frågan 16 sep. 2003 13:50 #1 Jag har gjort en admin till en gästbok. det går bra att loopa upp meddelandena från databasen, sen går det bra att klicka på ett meddelande för att ändra det. När jag klickat på länken ändra meddleande kommer jag till en sida där meddelandet visas.
När jag sedan ändrar i inputfälten får och trycker på en kanpp som jag döpt till uppdatera får jag följande fel:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'GUESTBOOK_ID ='.
/gastboken/and_uppdatera.asp, line 16
Här fljer hela sidan som han syftar på:
<%@ language=vbscript %>
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
</head>
<body>
<%
set mincon=server.CreateObject("ADODB.Connection")
set rs=server.CreateObject("ADODB.recordset")
mincon.Open "DSN=markusgb"
and_uppdatera = "select * from gastbok where GUESTBOOK_ID = " & Request.form("new") & " "
rs.Open and_uppdatera, mincon, 3, 3
%>
<%
rs("NAME")=Request.Form("NAME")
rs("EMAIL")=Request.Form("EMAIL")
rs("HOMEPAGE")=Request.Form("HOMEPAGE")
rs("CITY")=Request.Form("CITY")
rs("MESSAGE")=Request.Form("MESSAGE")
rs.update
rs.Close
mincon.Close
%>
</body>
</html>
@nders Medlem sedan juni 2000 32 967 inlägg Request.form("new") har inget värde.
Jag efterlyser också [kod]-taggar av läsbarhetsskäl.
mackanz Medlem sedan sep. 2003 443 inlägg Vad exat vil du ha?
Jag är nybröjare så jag kan inte så mycket!
M Melea Medlem sedan juli 2003 3 147 inlägg Som @nders sa så måste du ha ett <input type="hidden" name="new" value="gastboks ID'et"> fält för att du ska kunna skickas tillbaka till gästboksidan.
Ett tips är att använda den här update satsen istället.
SQL = "UPDATE gastbok SET namn = '" & _
Request.Form("namn") & "', email = '" & _
Request.Form("email") & "', homepage = '" & _
Request.Form("homepage") & "', city = '" &_
Request.Form("city") & "', message = '" & _
Request.Form("message") & "' WHERE guestbook_id = " & _
Request.Form("new") & " "
minCon.Execute(SQL)
Mvh
S SteveP Medlem sedan mars 2003 772 inlägg Vad är GuestBook_ID för datatyp?
Är det "INT" så ska det vara
and_uppdatera = "select * from gastbok where GUESTBOOK_ID = " & Request.form("new")
Om det är Char, text etc alltså en "String" som du jämför med så ska det vara
and_uppdatera = "select * from gastbok where GUESTBOOK_ID = "' & Request.form("new") & "'"
Sen som anders skrev så verkar det inte som om Request.Form("new") får något värde.
mackanz Medlem sedan sep. 2003 443 inlägg Jag har en sida före där det unika meddelande visas. Alltså, där själva unika posten (meddelandet) finns och den sidan ser ut så här:
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
<link rel="stylesheet" type="text/css" href="global.css">
<form action="and_uppdatera.asp" method=post id=form1 name=form1>
<%
guestbook_id=Request.Form("GUESTBOOK_ID")
name=Request.Form("NAME")
email=Request.Form("EMAIL")
homepage=Request.Form("HOMEPAGE")
city=Request.Form("CITY")
message=Request.Form("MESSAGE")
%>
</head>
<body>
<%
set mincon=server.CreateObject("ADODB.Connection")
set rs=server.CreateObject("ADODB.recordset")
mincon.Open "DSN=markusgb"
sql="SELECT * from GASTBOK WHERE GUESTBOOK_ID = " & Trim(Request.QueryString("MESSAGEID")) & " "
rs.Open sql, mincon, 3,3
%>
<form action="and_uppdatera.asp" method="post">
<input type="hidden" name="new" value="<%=Request.QueryString("GUESTBOOK_ID")%>">
<table border="0" width="450" align="center">
<tr>
<td valign="top" align="right">Namn:</td><td><input type="text" value="<%=rs("NAME")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">E-Mail:</td><td> <input type="text" value="<%=rs("EMAIL")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Hemsida:</td><td> <input type="text" value="<%=rs("HOMEPAGE")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Stad:</td><td> <input type="text" value="<%=rs("CITY")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Meddelande:</td><td> <textarea value="<%=rs("MESSAGE")%>" rows="7" cols="65"></textarea> </td>
</tr>
<tr>
<td colspan="2" height="10"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Uppdatera"></td>
</tr>
</table>
</body>
</html>
@nders Medlem sedan juni 2000 32 967 inlägg guestbook_id=Request.Form("GUESTBOOK_ID")
....
....
<input type="hidden" name="new" value="<%=Request.QueryString("GUESTBOOK_ID")%>">
Vad är det som gäller? Querystring eller Form?
Kolla dessutom in avsnittet om att infoga kod.
M Melea Medlem sedan juli 2003 3 147 inlägg Hehe, du har inget name på dina input fält.
<table border="0" width="450" align="center">
<tr>
<td valign="top" align="right">Namn:</td><td><input type="text" value="<%=rs("NAME")%>" name="name" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">E-Mail:</td><td> <input type="text" value="<%=rs("EMAIL")%>" name="email" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Hemsida:</td><td> <input type="text" value="<%=rs("HOMEPAGE")%>" name="homepage" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Stad:</td><td> <input type="text" value="<%=rs("CITY")%>" name="city" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Meddelande:</td><td> <textarea value="<%=rs("MESSAGE")%>" name="message" rows="7" cols="65"></textarea> </td>
</tr>
<tr>
<td colspan="2" height="10"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Uppdatera"></td>
</tr>
</table>
Mvh
mackanz Medlem sedan sep. 2003 443 inlägg Har jag inga namn på input?
Det har kag väl?
exempel:
<td valign="top" align="right">Meddelande:</td><td> <textarea value="<%=rs("MESSAGE")%>" name="message" rows="7" cols="65"></textarea> </td>
</tr>
@nders Medlem sedan juni 2000 32 967 inlägg Om du kopierar från koden i Meleas inlägg är det inte så konstigt om där finns namn, eftersom han lagt till dem. ;)
mackanz Medlem sedan sep. 2003 443 inlägg Det hjälpte inte mycket att lägga in "name" på inputfälten som jag glömt. Jag får väl kolla med min utbildare i morgon, om han har några teorier om vad som kan vara fel.
@nders Medlem sedan juni 2000 32 967 inlägg Om du inte förstår mitt inlägg , så säg bara till. Byt den undre av de två till request.form(), om det nu är så värdet kommer.
mackanz Medlem sedan sep. 2003 443 inlägg Jag kör med and_uppdatera = "select * from gastbok where GUESTBOOK_ID = " & Request.form("new") & " "
rs.Open and_uppdatera, mincon, 3, 3
men på en annan plats så står det..
sql="SELECT * from GASTBOK WHERE GUESTBOOK_ID = " & Trim(Request.QueryString("MESSAGEID")) & " "
rs.Open sql, mincon, 3,3
%>
<form action="and_uppdatera.asp" method="post">
<input type="hidden" name="new" value="<%=Request.QueryString("GUESTBOOK_ID")%>">
arsch.. vad kass jag är på förklara...
Som det sagts ett par gånger innan kan du börja med att använda kod-taggar!
@nders Medlem sedan juni 2000 32 967 inlägg
magnusfernstrom skrev:
Som det sagts ett par gånger innan kan du börja med att använda kod-tagger!
Ok, bra att du drog upp en ett år gammal tråd för att säga det. ;)
Darn darn darn! :(
Jag såg bara att någon läste den genom online-listan, och som vanligt är jag dum nog att inte kolla datumet.
Kan du ta bort mina inlägg tror du? :)
@nders Medlem sedan juni 2000 32 967 inlägg Kan - ja.
Ska - nej.
Jag har ingenting med moderering i detta forum att göra. Mitt förslag är att vi bara låter tråden somna. Igen. ;)
mvh
mackanz skrev:
Jag har en sida före där det unika meddelande visas. Alltså, där själva unika posten (meddelandet) finns och den sidan ser ut så här:
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
<link rel="stylesheet" type="text/css" href="global.css">
<form action="and_uppdatera.asp" method=post id=form1 name=form1>
<%
guestbook_id=Request.Form("GUESTBOOK_ID")
name=Request.Form("NAME")
email=Request.Form("EMAIL")
homepage=Request.Form("HOMEPAGE")
city=Request.Form("CITY")
message=Request.Form("MESSAGE")
%>
</head>
<body>
<%
set mincon=server.CreateObject("ADODB.Connection")
set rs=server.CreateObject("ADODB.recordset")
mincon.Open "DSN=markusgb"
sql="SELECT * from GASTBOK WHERE GUESTBOOK_ID = " & Trim(Request.QueryString("MESSAGEID")) & " "
rs.Open sql, mincon, 3,3
%>
<form action="and_uppdatera.asp" method="post">
<input type="hidden" name="new" value="<%=Request.QueryString("GUESTBOOK_ID")%>">
<table border="0" width="450" align="center">
<tr>
<td valign="top" align="right">Namn:</td><td><input type="text" value="<%=rs("NAME")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">E-Mail:</td><td> <input type="text" value="<%=rs("EMAIL")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Hemsida:</td><td> <input type="text" value="<%=rs("HOMEPAGE")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Stad:</td><td> <input type="text" value="<%=rs("CITY")%>" size="63"></td>
</tr>
<tr>
<td valign="top" align="right">Meddelande:</td><td> <textarea value="<%=rs("MESSAGE")%>" rows="7" cols="65"></textarea> </td>
</tr>
<tr>
<td colspan="2" height="10"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Uppdatera"></td>
</tr>
</table>
</body>
</html>
VAR ser du " & Request.form("new") & " här.....finns inte ett formulär som heter new...hur man du requesta nåt som inte finns?