ConnyFoxMedlem sedan aug. 20011 201 inlägg Bör väll börja med att jag e VÄLDIGT nybörjare med asp och databaser så d kan vara djävligt grova missar här. behöver hur som helst veta vad som e fel på scriptet för d funkar inte o jag har noll koll.. ;)
Ok jag har tre olika sidor
Text_admin.asp, text_form.asp och text_change.asp
text_admin.asp
listar upp alla databas inlägg och ger varje inlägg en länk för att ändra innehållet.
<%
RecSet.MoveFirst
Do until RecSet.EOF
%>
<tr><td>
<img src="bilder/<%=RecSet("bild")%>.gif">
</td><td>
<b><%=RecSet("namn")%></b> : <%=RecSet("texterna")%>
</td><td width="50">
- <a href="text_delete.asp?ID=<%=RecSet("ID")%>">Ta Bort</a><br>
- <a href="text_form.asp?ID=<%=RecSet("ID")%>" target="iframe">Ändra</a>
<br>
</td></tr>
<%
RecSet.MoveNext
loop
RecSet.Close
connection.Close
%>
text_form.asp
ska ta imot id nummer från länken i admin till en form och sedan skicka vidare innehållet i formen och id nummret till en sida som ändrar inlägget i databasen
<form action="text_change.asp?ID=<% =Request.Querystring("id") %>" method="post">
<input name="texterna" size="20">
<a href="javascript:document.add.submit()"><img SRC="bilder/skicka.gif" name="skicka" value="Skicka" class="input"></a>
<a href="javascript:document.add.reset()"><img SRC="bilder/radera.gif" name="radera" value="Radera" class="input"></a>
</form>
text_change.asp
Ska alltså ändra inlägget med det id numret och kolumnen texter till det som skickas från text_form.asp
<%
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM texter WHERE texterna LIKE '"& Request.Querystring("id")("edit") &"'"
RecSet.Open SQL, Connection, 3, 3
RecSet.Uppdate
RecSet.Close
Connection.Close
response.redirect "text_admin.asp"
%>
------------------
*brölar ljudligt*
LarsGMedlem sedan dec. 200012 465 inlägg Hur har du tänkt att det skall fungera när man gör ändringar?
Nu lägger du aldrig ut några fält där man kan editera värdena.
t.ex.
text_form.asp
<%
response.buffer=true
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
set rs = connection.execute("select name,texterna from texter where id = " & request.querystring("id"))
if not rs.eof then
%>
<form action='UPDATE.ASP' method='POST'>
<input type='TEXT' name='NAMN' value='<%=rs("namn")%>'>
<input type='TEXT' name='TEXTERNA' value='<%=rs("texterna")%>'>
<input type='HIDDEN' name='ID' value='<%=request.querystring("id")%>'>
<input type='SUBMIT' value='Uppdatera'>
<%
else
response.write "Den posten finns inte!"
response.redirect "text_admin.asp"
end if
rs.close
Connection.close
%>
text_change.asp
<%
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
SQL = "Update texter set name = '" & replace(request.form("name"),"'","''") & "','" & _
replace(request.form("name"),"'","''") & "'" & _
" WHERE id = " & Request.Form("id")
connection.execute sql,,128
Connection.Close
response.redirect "text_admin.asp"
%>
Första lektionen: Använd aldrig recordset för att göra uppdateringar.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 30 nov 2001]
ConnyFoxMedlem sedan aug. 20011 201 inlägg tack men jag får ett error på denna raden, varför?
set RecSet = connection.execute("select name,texterna where id = " & request.querystring("id")
Kompileringsfel i Microsoft VBScript fel '800a03ee'
')' förväntas.
/StajlText 1.0/text_form.asp, rad 16
set RecSet = connection.execute("select name,texterna where id = "')' & request.querystring("id")
------------------------------------------------------------------^
------------------
*brölar ljudligt*
LarsGMedlem sedan dec. 200012 465 inlägg Det står ju precis vad som är fel.
set RecSet = connection.execute("select name,texterna where id = " & request.querystring("id"))
------------------
essentitia preter non sans multiplicandum
ConnyFoxMedlem sedan aug. 20011 201 inlägg Hehe jo jag har fixat d nu missade ett ")" ;)
men nu får jag ett annat fel..
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'texterna where id ='.
/StajlText 1.0/text_form.asp, rad 6
------------------
*brölar ljudligt*
ConnyFoxMedlem sedan aug. 20011 201 inlägg Jag är som sagt nybörjare på detta o fattar typ ingenting ;) *skyller på* hehe
------------------
*brölar ljudligt*
jorgenMedlem sedan feb. 20012 179 inlägg Hej,
är fältet id av text eller numerisk typ?
red:
är det av texttyp bör det vara:
set RecSet = connection.execute("select name,texterna where id = '" & request.querystring("id") & "' ")
kolla också så att fälten är rättstavade
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 29 nov 2001]
ConnyFoxMedlem sedan aug. 20011 201 inlägg Asså jag börjar fundera på om d kan vara så att sidan känner av att det sitter en inkompetent djävel här o ger mig massa fel bara för att djävlas!!
nu får jag detta..
Kompileringsfel i Microsoft VBScript fel '800a03ee'
')' förväntas.
/StajlText 1.0/text_form.asp, rad 6
set RecSet = connection.execute("select name,texterna where id = '" & request.querystring("id")"'")
-----------------------------------------------------------------------------------------------^
VAD E FEL? *ARGH* blir så trött på detta hehe *dunkar huvudet i skärmen så webkameran flyger all världens väg*
------------------
*brölar ljudligt*
LarsGMedlem sedan dec. 200012 465 inlägg Det ser mer ut som om request.querystring("id") inte innehåller något värde. Du får kolla på den sida som länkar till text_form att det kommer med i länken.
------------------
essentitia preter non sans multiplicandum
jorgenMedlem sedan feb. 20012 179 inlägg Kolla på min kod ovan, du har glömt ett &
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
LarsGMedlem sedan dec. 200012 465 inlägg Id är väl en räknare?
------------------
essentitia preter non sans multiplicandum
ConnyFoxMedlem sedan aug. 20011 201 inlägg Detta är min kod nu, är nått fel?
<%
response.buffer = true
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
set RecSet = connection.execute("select name,texterna where id = '" & request.querystring("id") & "'")
if not RecSet.eof then
%>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" href="mall.css">
</head>
<body topmargin="0" leftmargin="0">
<form action="text_change.asp" method="POST">
<input type="TEXT" name="NAMN" value="<%=rs("namn")%>">
<input type="TEXT" name="TEXTERNA" value="<%=rs("texterna")%>">
<input type="HIDDEN" name="ID" value="<%=request.querystring("id")%>">
<input type="SUBMIT" value="Uppdatera">
<%
else
response.write "Den posten finns inte!"
response.redirect "text_admin.asp"
end if
rs.close
Connection.close
%>
------------------
*brölar ljudligt*
jorgenMedlem sedan feb. 20012 179 inlägg Med tanke på att koden från början var:
SQL = "SELECT * FROM texter WHERE texterna LIKE '"& Request.Querystring("id")("edit") &"'"
fick jag känslan av att id är av typen text, men det är nog högst troligt att querystringen är tom, precis som LarsG säger.
red: om värdet kommer från ett formulär enligt koden ovan bör det vara request.form("id") istället för request.querystring("id")
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 29 nov 2001]
LarsGMedlem sedan dec. 200012 465 inlägg Det beror på vad id är för datatyp. Om det är en räknare så skall du inte ha med apostrofer kring sökvärdet.
Sen så skapar du ett recordset som du kallar för recset men när du lägger ut värden i fälten så använder du namnet rs. Du får ändra så att det blir samma namn överallt.
------------------
essentitia preter non sans multiplicandum
ConnyFoxMedlem sedan aug. 20011 201 inlägg Jao ID är en Räknare och den funkar som den ska!
Här är länken som länkar till text_form.asp
<a href="text_form.asp?ID=<%=RecSet("ID")%>" target="iframe">Ändra</a>
Det är för att text_form.asp ska veta vilket databas inlägg som skall ändras
------------------
*brölar ljudligt*
jorgenMedlem sedan feb. 20012 179 inlägg okey, då ska det vara nästan så som LarsG skrev från början:
set RecSet = connection.execute("select name,texterna where id = " & request.form("id"))
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 30 nov 2001]
LarsGMedlem sedan dec. 200012 465 inlägg Tabellnamnet kom aldrig med i select-frågan!
<%
response.buffer = true
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
set RecSet = connection.execute("select name,texterna [b] from texter [/b] where id = " & request.querystring("id") )
if not RecSet.eof then
%>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" href="mall.css">
</head>
<body topmargin="0" leftmargin="0">
<form action="text_change.asp" method="POST">
<input type="TEXT" name="NAMN" value="<%=recset("namn")%>">
<input type="TEXT" name="TEXTERNA" value="<%=recset("texterna")%>">
<input type="HIDDEN" name="ID" value="<%=request.querystring("id")%>">
<input type="SUBMIT" value="Uppdatera">
<%
else
response.write "Den posten finns inte!"
response.redirect "text_admin.asp"
end if
rs.close
Connection.close
%>
------------------
essentitia preter non sans multiplicandum
ConnyFoxMedlem sedan aug. 20011 201 inlägg haha vafan kan inte vara NÅGOT som e rätt i min kod *asg*
<%
response.buffer = true
database = Server.MapPath("text.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database
set RecSet = connection.execute("select name,texterna FROM texter where id = " & request.querystring("id") )
if not RecSet.eof then
%>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" href="mall.css">
</head>
<body topmargin="0" leftmargin="0">
<form action="text_change.asp" method="POST">
<input type="TEXT" name="NAMN" value="<%=rs("namn")%>">
<input type="TEXT" name="TEXTERNA" value="<%=rs("texterna")%>">
<input type="HIDDEN" name="ID" value="<%=request.querystring("id")%>">
<input type="SUBMIT" value="Uppdatera">
<%
else
response.write "Den posten finns inte!"
response.redirect "text_admin.asp"
end if
RecSet.close
Connection.close
%>
</body>
</html>
och länken som skickar en till sidan
<a href="text_form.asp?ID=<%=RecSet("ID")%>" target="iframe">Ändra</a>
hehe har gjort precis som ni skrivit men får ändå error..
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id ='.
/StajlText 1.0/text_form.asp, rad 6
------------------
*brölar ljudligt*
VideMedlem sedan dec. 19996 094 inlägg Se till att request.querystring("id") innehåller ett värde, annars blir det fel.
------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu
ConnyFoxMedlem sedan aug. 20011 201 inlägg jo men d e väll det som den här länken gör?
<a href="text_form.asp?ID=<%=RecSet("ID")%>" target="iframe">Ändra</a>
------------------
*brölar ljudligt*