webForumDet fria alternativet

Ta bort inlägg efter 50...

ASP

2 svar · 185 visningar · startad av graf

Medlem sedan aug. 2001174 inlägg
Frågan#1

Hej!
Har ett forum och använder inte paging, men jag skulle vilja ha så att de 50 senaste inläggen visas och de äldre raderas från forumet automatiskt.

Hur gör jag?
Såhär ser forum scriptet ut:

<BODY BGCOLOR="#FFFFFF" TEXT="#000000"
LINK="#000000" VLINK="#000000" ALINK="#000000">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">

<html>

</html>

<style>
<!--
a { text-decoration: none }
a:hover { color: #cococo; text-decoration: underline }
-->
</style>

<!-- #include file="adovbs.inc" -->
<html>
<head>
<title>....</title>
<style>
<!--
a { text-decoration: none }
a:hover { color: #cococo; text-decoration: underline }
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="500" border="0" cellspacing="0" cellpadding="2" height="100%" align="center">
<tr>
<td valign="top">
<p align="left"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">

  \<p align="left"\>\<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"\>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><b>[<A HRef="forum.asp">Uppdatera</A>] [<a href="nyinlagg.asp">Skriv inlägg</a>] [<A HREF="sok.asp" target="huvud">Sök</A>] </B>
<hr>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/forum.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From asp WHERE REF_ID = 0 ORDER BY DATUM DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
X=0
DO UNTIL X=25 OR RecSet.EOF ' <-- Här visar vi bara de 25 senaste trådarna

nytt = "no"

Set RecSet2 = Server.CreateObject("ADODB.Recordset")

Addera2 = "Select DATUM From asp WHERE REF_ID = " &RecSet("ID")
RecSet2.Open Addera2, Connect, adOpenStatic, adLockOptimistic

DO UNTIL RecSet2.EOF OR nytt = "yes"
	IF RecSet2("DATUM") \> NOW - 1 THEN
		nytt = "yes"
	END IF
	
	RecSet2.MOVENEXT
LOOP

RecSet2.CLOSE

%>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">
<a href="read.asp?ID=<%=RecSet("ID")%>">
<% IF nytt = "yes" THEN %>

          \<% END IF %\>\<li\>
          \<%=RecSet("RUBRIK")%\>\</a\> \[\<%=RecSet("ANTALSVAR")%\>\] \<%=RecSet("NAMN")%\>  \</font\>\</td\>
        \<td width="130"\>\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"\> 
          \</font\>\</td\>
        \<td width="125"\>\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"\> 

</tr>
<%
RecSet.MOVENEXT
LOOP
RecSet.CLOSE
Connect.CLOSE
Set RecSet = nothing
Set Connect = nothing
%>
</table>
<hr size="1" width="50%" align="left">
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"></font><br>
<b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">
<%
IF Session("fel") <> "" THEN
Response.WRITE Session("fel")
Session("fel") = ""
END IF
%>
</font></b><br>
</p>
</div>

</body>
</html>

Medlem sedan dec. 19995 874 inlägg
#2

Det bästa är kanske att du lägger in det i global.asa och raderar en gång per dygn eller så.

Deletesatsen bör väl se ut något sånt här:

DELETE FROM asp WHERE ID NOT IN (SELECT TOP 50 FROM asp ORDER BY DATUM DESC)

Men prova på en kopia av databasen.

------------------
Mvh
Patrik aka Brimba

Medlem sedan aug. 2001174 inlägg
#3

okej tack för svaret!

Vet nån hur man gör så att den senaste kommenterade inlägget visas överst bland rubrikerna?

Tack på förhand!

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)