Hejsan jag håller på och snickrar på ett krönika system och allt har gått vägen förrutom när det kom till redigerings delen...
Det är så här att jag har en databas med tabellnamn festsnack, och tabellerna ser ut på följande:
ID, Rubrik, Namn, Email, Meddelande, Datum, Tid
Nu e det så att när man går in på admin sidan så visar den smtliga krönikor som finns i databasen och sedan är det bara att klicka sig vidare och välja den man vill redigera. När jag exempelvis klickar på en krönika för redigering så får jag detta felmeddelande:
ADODB.Field fel '80020009'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
?
och källkoden för den sidan ser ut på följande vis:
Precis, det id som kommer via request.querystring("addressID") finns inte i databasen.
Så det beror mer på hur koden som skapar querystríngen ser ut. Du kanske tar ett värde från fel fält i recordsetet när du bygger ihop din querystring.
red:
I och för sig så bör du lägga in en kontroll i din kod så att du hanterar att man inte får detta fel.
sql = "select * from t where id = " & id
set rs = connect.execute(sql)
if rs.eof then
response.write "Inga poster hittades <br>"
else
'skriv ut resultat
end if
------------------ essentitia preter non sans multiplicandum
Det ser väl korrekt ut??, du ser på mitt första inlägg hur raderna i databsen ser ut, det e kanske de som strular, jag testade att ändra ID till adressID men problemet kvarstår sig
konstigt, när jag la in det du sa till mig, så fick jag samma fel meddelande fast längt upp på sidan stå det inga poster funna, konstigt att din inte hittar posten när jag kollar i databasen så har posten Id=1 och länken till dit jag vill kommas till är ?adressId=1
Nja, det måste vara något skumt med request.querystring("adressid")
Hur ser strängen visa ut?
Du kan ju lägga till detta:
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM krönika WHERE ID = " Trim(Request.QueryString("adressID")) & " "
response.write "SQL:" & visa & "<br>"
Hur ser koden som bygger querystringen ut?
------------------ essentitia preter non sans multiplicandum
Det jag vill göra är att hämta data från databasen för redigering.
Och varje krönika som finns i databasen tilldelas ett unikt ID, 1, 2 3, osv...
låt oss säga att jag vill hämta 1:an och då länkar jag till den via denna kod:
<!--#include file="..\includelogin.asp"-->
<!--#include file="..\..\adovbs.inc"-->
<!--#include file="..\..\design.html"-->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("..\..\..\db.mdb")
%>
<html>
<head>
<link rel="stylesheet" href="../../textmall.css">
</head>
<body>
<center><b>Redigera Krönika!</b><br>
Följande krönikor finns att redigera.</center>
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM festsnack ORDER BY ID DESC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
%>
<ul>
<%
Do Until RecSet.EOF
%>
<li><b><%=RecSet("datum")%> - <% =RecSet("Rubrik") %> av <% =RecSet("Namn") %></b><br>
<% =left(RecSet("Meddelande"),150) %>...<br>
<a href="redigera1.asp?adressID=<% =RecSet("ID") %>">Redigera.</a><br><br>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set Connect = Nothing
%>
<br>
<a href="../../admin_kronika.asp">Tillbaka till första sidan</a>.
</body>
</html>
<!--#include file="..\..\bottom.inc"-->
Med denna kod får jag fram samtliga krönikor som finns i databasen och får de länkade till koden som jag hade på mitt första inlägg, men det strukar till sig när jag ska läsa in data från databasen...