AAboOMedlem sedan juni 2002191 inlägg Nu är det bara en liten grej.
T.ex. om man har 3 st inlägg. och man inte kommenterar inlägg nr 2 utan bara 1-3. Så hamnar kommentar nr 2 under inlägg nr 2, fast den egentligen ska hamna under inlägg nr 3.
Och om jag raderar inlägg nr 1. förvinner kommentaren till inlägg nr 1 också då? (radera funktionen har slutat funka nu när jag har gjort om massa)
SsolbulleMedlem sedan mars 20015 287 inlägg Nej, du. Det tror jag inte alls på. :)
Inte om du använder den kod jag postade sist.
Däremot så skrivs ju fortfarande detta ut:
Namn:
Kommentar:
För att komma runt det kan du skriva:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb")
strSQL = "SELECT kommentar.svarnamn, kommentar.kid, kommentar.svar, Results.id, Results.foretag, Results.inlagg, Results.namn, Results.time"&_
" FROM Results Left outer JOIN kommentar ON Results.id = kommentar.kid order by Results.id"
Set objRS = Connect.Execute(strSQL)
do until objRS.EOF
If checkid <> objRS("id") then %>
Namn: <%Response.Write(objRS("namn"))%><br>
Företag: <%Response.Write(objRS("foretag"))%> <br>
Inlägg: <%Response.Write(objRS("inlagg"))%> <br>
<a href="answer.asp?id=<%=Response.Write(objRS("ID"))%>" target="_blank">Kommentera</A> <br>
<a href="tabort.asp?delID=<%Response.Write(objRS("ID"))%>" onClick="return confirm('Är du säker på att du vill ta bort inlägget??')" target="_self">Radera</a> <br>
<%Response.Write(objRS("time"))%> <br><br>
<%
End If
If objRS("svarnamn") <> "" or objRS("svar")<> "" then
%>
Namn:</B> <%Response.Write(objRS("svarnamn"))%> <br>
Kommentar:</B> <%Response.Write(objRS("svar"))%> <br>
<a href="anwdel.asp?delID=<%Response.Write(objRS("Kid"))%>" onClick="return confirm('Är du säker på att du vill ta bort kommentaren?')" target="_self">Radera</a>
<%Response.Write(objRS("namn"))%> <br><br><br>
<%
End If
checkid = objRS("id")
objRS.MoveNext
Loop
Set objRS = Nothing
%>
AAboOMedlem sedan juni 2002191 inlägg Men kolla på http://user.domaindlx.com/aboox/db/ så ser du att det blir fel.
Men å andra sidan är det nog inte hela världen, bara jag säger till dom att skriva kommentar på alla inläggen.
SsolbulleMedlem sedan mars 20015 287 inlägg Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/aboox/db/list.asp, line 56
Får jag där...
Visa den kod du kör där nu.
SsolbulleMedlem sedan mars 20015 287 inlägg Du får inte med dig något id i länken till kommentarssidan.
AAboOMedlem sedan juni 2002191 inlägg hm. va konstigt. de funkar för mig. men så här ser koden ut iaf:
nu tar jag med html å hela rubbet.
<!-- #include file="adovbs.inc" -->
<% Session.lcid = 1053 %>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb")
strSQL = "SELECT kommentar.svarnamn, kommentar.kid, kommentar.svar, Results.id, Results.foretag, Results.inlagg, Results.namn, Results.time"&_
" FROM Results Left outer JOIN kommentar ON Results.id = kommentar.kid order by Results.id desc"
Set objRS = Connect.Execute(strSQL)
do until objRS.EOF
If checkid <> objRS("id") then
%>
<html>
<head>
<style type="text/css">
<!--
BODY
{
scrollbar-arrow-color:#FFCC33;
scrollbar-base-color:#FFCC33;
scrollbar-darkshadow-color:#FFFFFF;
scrollbar-face-color:#FFFFFF;
scrollbar-highlight-color:#FFFFFF;
scrollbar-shadow-color:#FFCC33
}
-->
<style type="text/css">
<!--
body { overflow-X: hidden;}
-->
</style>
</style>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Idelåda</title>
<base target="huvud">
</head>
<body leftmargin="20">
<table width="652" border="0" cellpadding="0" cellspacing="0" height="108">
<tr valign="top">
<td width="452" height="108">
<font face="Arial">
<b>Namn:</B> <%Response.Write(objRS("namn"))%> <br>
<b>Företag:</b> <%Response.Write(objRS("foretag"))%> <br>
<b>Inlägg:</B> <%Response.Write(objRS("inlagg"))%><br><br> <font size="2"><a href="answer.asp?id="<%=Response.Write(objRS("ID"))%>" target="_blank">Kommentera</A>
| <a href="tabort.asp?delID=<%Response.Write(objRS("ID"))%>" onClick="return confirm('Är du säker på att du vill ta bort inlägget??')" target="_self">Radera</a>
| <%Response.Write(objRS("time"))%> <br></font><br>
<% End If %>
<b>Namn:</B> <%Response.Write(objRS("svarnamn"))%> <br>
<b>Kommentar:</B> <%Response.Write(objRS("svar"))%> <br>
<font size="2">
<a href="anwdel.asp?delID=<%Response.Write(objRS("Kid"))%>" onClick="return confirm('Är du säker på att du vill ta bort kommentaren?')" target="_self">Radera</a>
| <%Response.Write(objRS("time"))%> </font>
<hr noshade color="#000000">
<%
checkid = objRS("id")
objRS.MoveNext
Loop
Set objRS = Nothing%>
<%
nextPage = TRIM( Request( "nextPage" ) )
IF nextPage = "" THEN nextPage = 1
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
SQL = "SELECT * FROM results ORDER BY ID desc"
RecSet.Open SQL, Connect
RecSet.PageSize = 10
RecSet.AbsolutePage = nextPage
Do until RecSet.EOF OR rowCount > RecSet.PageSize
rowCount = rowCount + 1
RecSet.MoveNext
Loop
IF RecSet.PageCount > 1 THEN
FOR a = 1 to RecSet.PageCount
IF a <> cINT( nextPage ) THEN
Response.Write ("<a href='list.asp?nextPage="& a &"' target='list'>"& a &"</a>")
ELSE
Response.Write " "& a
END IF
NEXT
END IF %>
<p></font>
</td>
</table>
</body>
(det där sista asp-grejjen är pageing)
SsolbulleMedlem sedan mars 20015 287 inlägg <a href="answer.asp?id=<%Response.write(objRS("ID"))%>" target="_blank">Kommentera</A>
Du är medveten om att din paging knappast lär fungera i sin nuvarande form?
Sen kan du ta bort denna:
<!-- #include file="adovbs.inc" -->
= Runt 300 rader onödig kod.
SsolbulleMedlem sedan mars 20015 287 inlägg
AboO skrev:
Så har jag ju redan?
Åfan? Inte vad jag kan se. ;)
r/ Ändra din rad som är nästan likadan till den jag postade.
AAboOMedlem sedan juni 2002191 inlägg det blir fortfarande likadant :|
men som sagt så tror jag inte de spelar så stor roll.
SsolbulleMedlem sedan mars 20015 287 inlägg Nej du, jag är attans påstridig nu, men jag undrar om du inte lägger in dina kommentarer fel eller något. Jag testar din kod och den fungerar för mig.
Kolla i din db om id sam kid stämmer överens med det som du tänkt dig. (=som du anser dig lagt in dom.)
AAboOMedlem sedan juni 2002191 inlägg Så här ser databasen ut:
http://user.domaindlx.com/aboox/db/db.jpg
och så här ser sidan ut som sparar kommentarerna ut:
<% Session.lcid = 1053 %>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera= "Select * From kommentar"
RecSet.Open Addera, Connect, 3, 3
RecSet.Addnew
RecSet("svarnamn")=Request.Form("svarnamn")
RecSet("svar")=Request.Form("svar")
RecSet("time") = Date
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Response.redirect "saved.htm"
%>
OOveRRidEMedlem sedan feb. 200112 078 inlägg SsolbulleMedlem sedan mars 20015 287 inlägg Och var lägger du då in det viktigaste av allt? Referensen till den andra tabellen?
Fältet kid?
Det ska ju inte vara autonummer på den!
Den ska ju få samma nummer som orginalinlägget den ommenterar, annars kan det ju aldrig fungera...
Såja, nu fixar du det. :)
AAboOMedlem sedan juni 2002191 inlägg Det är just det där med referensen jag inte riktigt förstått.
Vad ska det vara på kid då?
SsolbulleMedlem sedan mars 20015 287 inlägg kid ska vara ett nummerfält, ej autonummer/räknare.
I det fältet ska id-numret från artikeln hamna. Så att man vet att alla kommentarer med samma id som kid i kommentarstabellen hör ihop.
Din kod på den sida du visade kod på nyss ska se ut så här:
<% Session.lcid = 1053 %>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera= "Select * From kommentar"
RecSet.Open Addera, Connect, 3, 3
RecSet.Addnew
RecSet("kid")=Request.Querystring("id")
RecSet("svarnamn")=Request.Form("svarnamn")
RecSet("svar")=Request.Form("svar")
RecSet("time") = Date
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Response.redirect "saved.htm"
%>
AAboOMedlem sedan juni 2002191 inlägg Så om jag ändrar till nummer istället för autonummer sen lägger till den där koden är allt fint sen? :)