文章系统中“上篇、下篇”效果的制作

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

以前曾经参考过一个网站的源码,是使用ID+1和ID-1的办法来判断上下篇的。在实际使用过程中,发现一个问题:当删除数据库中的一篇文章时,就会造成ID不连续,如果用ID+1和ID-1来判断就会出现找不到记录。所以程序并不是非常的完美。

在我们所介绍的ASP代码中,是通过查询大于当前ID的第一条记录来找出下一篇的ID,查询小于当前ID的第一条记录来找出上一篇的ID,这样就算ID不连续也可以正常显示了。(程序代码也是参阅过经典论坛相关贴子提示所制作的)

简单介绍方法:

数据表articles中有id(文章ID)、title(文章标题)、content(文章内容)、addtime(文章发布时间)等其它各相关字段。

<!--数据库连接文件-->

<!--#include file="conn.asp"-->

<%

`定义一个nextrs函数来找出下一篇的ID

function nextrs

nextrsd=server.CreateObject("adodb.recordset")

sql="select top 1 * from articles where id>"&a1&" order by id"

set nextrsd=conn.execute(sql)

if nextrsd.eof then

response.Write "下一篇:这是本分类下的最后一篇文章"

else

a2=nextrsd("id")

response.Write "下一篇:<a href='article.asp?id="&a2&"'>"&nextrsd("title")&"</a>"

end if

end function

`定义一个backrs函数来找出上一篇的ID

function backrs

backrsd=server.CreateObject("adodb.recordset")

sql="select top 1 * from articles where id<"&a1&" order by id desc"

set backrsd=conn.execute(sql)

if backrsd.eof then

response.Write "上一篇:这是本分类下的第一篇文章"

else

a0=backrsd("id")

response.Write "上一篇:<a href='article.asp?id="&a0&"'>"&backrsd("title")&"</a>"

end if

end function

`取得传递过来的文章ID

ID=request("id")

sql="select * from articles where id="&id

set rs=conn.execute(sql)

a1=rs("id")

%>

<!--显示文章内容..............................-->

<!--调用前面定义的显示上一篇文章的函数--><% backrs %><br>

<!--调用前面定义的显示下一篇文章的函数--><% nextrs %>

<!--程序结束-->

水平有限,可能在代码上还有些不足之处,如出现Bug,请及时给予指正。如有疑问之处,请登录http://www.webjx.com/bbs发贴询问。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有