webForumDet fria alternativet

Krönika knas

ASP

11 svar · 124 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan!

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:

<!--#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>

	<%
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Visa = "SELECT * FROM krönika WHERE ID = " & Trim(Request.QueryString("adressID")) & " "
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
	%>

<div align="center">
  <center>
  <table border="0" width="500" cellspacing="1">
    <tr>
      <td width="100%">
	<form method="POST" action="redigera2.asp">
	<input type="hidden" name="AD" value="<% =Request.QueryString("adressID") %>"> <b>Rubrik:<br>
	<input type="text" size="30" name="rubrik" value="<% =RecSet("Rubrik") %>"><br> Författare:<br>
	<input type="text" size="30" name="namn" value="<% =RecSet("Namn") %>"><br> Email:<br>
	<input type="text" size="30" name="email" value="<% =RecSet("email") %>"><br> Meddelande:<br>
	<textarea rows="5" name="meddelande" cols="50"><font size=2><%= RecSet("Meddelande") %></font></textarea><p></b>
	<input type="submit" value="Uppdatera">
	</form>

	<%
	RecSet.Close
	Connect.Close
	Set Connect = Nothing
	%>

  
	<center><a href="default.asp">Redigera annan krönika!</a><br>
	<a href="../../admin_festsnack.asp">Tillbaka</a>.</center>
</td>
    </tr>
  </table>
  </center>
</div>
</body>
</html>
<!--#include file="..\..\bottom.inc"-->

Det måste vara att den inte kan läsa av den specifika ID:n för den krönikan som skall redigeras eller??

Medlem sedan dec. 200012 464 inlägg
#2

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

[Redigerat av LarsG den 17 sep 2001]

Medlem sedan dec. 20001 626 inlägg
#3

Så här ser det ut när jag lägger till en krönika i databasen:

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	RecSet.AddNew

	RecSet("Rubrik") = Request.Form("rubrik")
	RecSet("Namn") = Request.Form("namn")
	RecSet("Email") = Request.Form("email")
	RecSet("Meddelande") = Replace(Server.HTMLEncode(Request.Form("meddelande")), chr(13), 		"<BR>", 1)
	RecSet("datum")= date()
	RecSet("tid")= time()

	RecSet.Update
	RecSet.Close
	Connect.Close
	Set Connect = Nothing

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

Medlem sedan dec. 20001 626 inlägg
#4

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

Medlem sedan dec. 20001 626 inlägg
#5

Finns det inget proffs som kan hjälpa till??

Jag kan inte fixa det här själv, snälla...

Medlem sedan dec. 200012 464 inlägg
#6

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

Medlem sedan dec. 20001 626 inlägg
#7

Du kan se hela filen i mitt första inlägg...

Medlem sedan dec. 20001 626 inlägg
#8

Alltså om vi säger så här:

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...

Medlem sedan juni 20001 257 inlägg
#9

Du hämtar posterna från två olika tabeller, krönika och festsnack.

------------------
Kolja heter haddock på engelska.

Medlem sedan juni 20019 024 inlägg
#10

Finns det inget proffs som kan hjälpa till??

Vad är LarsG om han inte är proffs? ;)

------------------
"It's not where ya from it's where ya at"

Medlem sedan juni 20001 257 inlägg
#11

Elit?

------------------
Kolja heter haddock på engelska.

Medlem sedan dec. 20001 626 inlägg
#12

Osshhh tack så mycket att jag inte såg det där fifan d e en skam...

Men tack för hjälpen allihop!!!

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)