文章系统中“上篇、下篇”效果的制作
2004-08-07 10:52
232 查看
曾经有很多朋友在问我,It365cn.com文章中实现“上一篇”、“下一篇”的效果如何实现?因为一直忙于写It365cn的论坛,所以未能及时给朋友们提供站内的代码。适逢空闲,工作之余,简单的来介绍一下实现的ASP代码。
以前曾经参考过一个网站的源码,是使用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.it365cn.com/bbs发贴询问。
以前曾经参考过一个网站的源码,是使用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.it365cn.com/bbs发贴询问。
相关文章推荐
- js组件SlotMachine实现图片切换效果制作抽奖系统
- WinForm"仿js星形评分效果"控件制作经验分享(原创) 之配餐系统的开发
- 使用Unity3D自带动画系统制作下雨效果
- 粒子系统制作流动效果
- WinForm"仿js星形评分效果"控件制作经验分享(原创) 之配餐系统的开发
- 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览
- 转一篇制作jffs2文件系统的好文章
- WinPE 制作技术文章之 —— 三种超级方法制作WinPE系统维护U盘
- [TGE游戏引擎粒子系统研究]制作逼真得爆炸效果--展示篇
- nodejs教程之制作一个简单的文章发布系统
- 酒店管理系统房态图的效果制作
- 这篇文章不错-用Java制作网络文件下载系统
- js组件SlotMachine实现图片切换效果制作抽奖系统
- 制作合适的镜像系统 上篇
- 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来
- 酒店管理系统房态图的效果制作
- 用php制作文章发布管理系统流程解析(1)
- 转一篇制作jffs2文件系统的好文章
- Unity3d中使用自带动画系统制作下雨效果
- 做文章系统时, 如何让长篇的文章自动换行