Hjælp til Forumkodning

Tags:    asp

Hey..

Jeg har lavet en side med forum, men jeg har nogle problemer med en del af kodningen. Det som jeg gerne vil have den til, er at regne ud hvor mange svar der er, og hvem der sidst har svaret, men jeg ved ikke helt hvordan jeg skal gøre det.

Jeg har brugt denne kode:
<%
dim id
id=request.querystring("id")

if id="" then
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM indlaeg order by indlaegid desc"
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

i=1
a=0
Set indlaeg = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select * From indlaeg order by indlaegid desc"
indlaeg.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>

<%
i=1
do until indlaeg.eof
a=a+1
Set id = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM users where brugernavn ='"&indlaeg("navn")&"'"
id.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
if i=1 then
bg="#FFFFFF"
i=0
else
bg="#eeeeee"
i=1
end if
%>
<tr bgcolor="<%=bg%>"> <td>
 <a href=indlaeg.asp?id=<%=indlaeg("indlaegid")%>><%=indlaeg("emne")%></a> </td> <td> Antal Svar </td> <td> <%=indlaeg("navn")%> </td> <td> Seneste Svar </td>
</tr>
<%indlaeg.movenext
loop%>
<%end if%>

Hvor indlaeg er de tråde der er oprettet...

Håber at der er nogen der kan hjælpe mig med at få gjort det sidste færdig..

Hilsen
Carsten_MC



10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
i=1
do until indlaeg.eof
a=a+1
Set id = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM users where brugernavn ='"&indlaeg("navn")&"'"
id.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

Set antal = Conn.Execute("SELECT COUNT(ID) AS total FROM svar WHERE indlaegID = " & indlaeg("indlaegID") & "")
strAntalIndlaeg = antal("total")
antal.Close
Set antal = Nothing

Set sidsteIndlaeg = Conn.Execute("SELECT TOP 1 * FROM svar WHERE indlaegID = " & indlaeg("indlaegID") & " ORDER BY id")
strSidsteIndlaeg = sidsteIndlaeg("dato") & " " & sidsteIndlaeg("tid")
sidsteIndlaeg.Close
Set sidsteIndlaeg = Noting

if i=1 then
bg="#FFFFFF"
i=0
else
bg="#eeeeee"
i=1
end if
%>
<tr bgcolor="<%=bg%>"> <td>
<a href=indlaeg.asp?id=<%=indlaeg("indlaegid")%>><%=indlaeg("emne")%></a> </td> <td> Antal Svar <%=strAntalIndlaeg%></td> <td> <%=indlaeg("navn")%> </td> <td> Seneste Svar <%=strSidsteIndlaeg%></td>
</tr>
<%
indlaeg.movenext
loop



Har du et felt sådan at man kan se hvilke indlæg tilhøre hvilken tråd? Noget lign. indexID?



Har du et felt sådan at man kan se hvilke indlæg tilhøre hvilken tråd? Noget lign. indexID?


Hey...

Undskyld jeg ikke har svaret noget før...

I man database har jeg disse to tabels, med følgende indhold:

indlaeg:
Navn - personen som har oprettet indlægget
Emne
Indlaeg - Teksten
Dato
Tid
indlageID - ID til indlægget

Svar:
ID
Emne - RE: Emnenavn
Navn - Personen der har oprettet svaret
Svar - Teksten
indlaegID - hvilket indlæg de hører til
Dato
Tid



Hey...

Har puttet din kode ind..

Alt undtagen dette virker:
Set sidsteIndlaeg = Conn.Execute("SELECT TOP 1 * FROM svar WHERE indlaegID = " & indlaeg("indlaegID") & " ORDER BY id")
strSidsteIndlaeg = sidsteIndlaeg("dato") & " " & sidsteIndlaeg("tid")
sidsteIndlaeg.Close
Set sidsteIndlaeg = Noting

Når jeg bruger den, får jeg denne fejlmeddelelse:
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: '[undefined]'
/varde/forum.asp, line 133

Fejlinie:
Set sidsteIndlaeg = Noting



Rettes til:

Set sidsteIndlaeg = Nothing




Fejltype:
(0x80020009)
Undtagelse opstod.
/varde/forum.asp, line 131

Fejlinie:
strSidsteIndlaeg = sidsteIndlaeg("dato") & " " & sidsteIndlaeg("tid")



Prøv:

strSidsteIndlaeg = sidsteIndlaeg("Navn")



Fejltype:
ADODB.Field (0x800A0BCD)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.
/varde/forum.asp, line 131



Set sidsteIndlaeg = Conn.Execute("SELECT TOP 1 * FROM svar WHERE indlaegID = " & indlaeg("indlaegID") & " ORDER BY id")
IF NOT (sidsteIndlaeg.BOF OR sidsteIndlaeg.EOF) THEN
strSidsteIndlaeg = sidsteIndlaeg("Navn")
END IF
sidsteIndlaeg.Close
Set sidsteIndlaeg = Nothing



Jeg beklager, at jeg først svarer nu! Jeg var optaget af noget andet og glemte helt denne tråd.



t