找回密码
 注册
搜索
热搜: 回贴

ASP显示“上一篇,下一篇”

2010-1-31 07:49| 发布者: admin| 查看: 20| 评论: 0|原作者: 冰淇淋

以前看到一个帖子讲用ID+1和ID-1的办法判断“上一篇下一篇”,
在用的过程中发现一个问题:当删除数据库中的一篇文章时,就会造成ID不连续,
如果用ID+1和ID-1来判断就会出现找不到记录的问题,在这个程序里,
通过查询大于当前ID的第一条记录来找出下一篇的ID,
查询小于当前ID的第一条记录来找出上一篇的ID,这样就算ID不连续也可以正常显示了。
至于相关文章的显示则是在数据表里添加一个boardid字段来区分不同的文章栏目,
在每次添加一篇新文章时加上boardid号就可以了,
显示一篇文章时根据boardid来查询数据库就能显示出相关文章。
数据表articles中的字段有id,boardid,title,content,author,addtime。
因为信息拦截,里面的关键词用空格隔开了。在使用的时候修改一下。

'定义一个thenext函数来找出下一篇的ID,如果当前记录已经是最后一条记录,则输出文字“没有了”
<%
function thenext
newrs=server.CreateObject("adodb.recordset")
sql="s elect top 1 * from articles where id>"&a1&" order by id"
set newrs=conn.execute(sql)
if newrs.eof then
response.Write("没有了")
else
a2=newrs("id")
response.Write("下一篇")
end if
end function
%>
'定义一个thehead函数来找出下一篇的ID,如果当前记录已经是最前面的一条记录,则输出文字“没有了”
<%
function thehead
headrs=server.CreateObject("adodb.recordset")
sql="s elect top 1 * from articles where id<"&a1&" order by id desc"
set headrs=conn.execute(sql)
if headrs.eof then
response.Write("没有了")
else
a0=headrs("id")
response.Write("上一篇")
end if
end function
%>
'数据库连接文件

'取得传递过来的ID,显示文章标题作者和内容
<%
id=request("id")
sql="s elect * from articles where id="&id
set rs=conn.execute(sql)
%>
<%
boardid=rs("boardid")
%>
文章系统-<% =rs("title") %>


<%Do While Not rs.EOF%>


<% a1=rs("id") %>

<% rs.MoveNext
Loop
%>

<%= rs("title") %>

作者:<%= rs("author") %>



<%= replace(server.HTMLEncode(rs("content")),chr(13),"
") %>


<% thehead %>


<% thenext %>
相关文章:
'根据当前文章的栏目号,找出同一栏目的文章
<%sql="s elect * from articles where boardid="&boardid&""
set rs=conn.execute(sql)%>
<%Do While Not rs.EOF %>



">
<%= rs("title") %>

<% rs.MoveNext%><%Loop%>






最新评论

相关分类

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 11:40 , Processed in 0.227674 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部