首先感谢v37斑竹对我的帮助,这个方案解决了显示“上一篇下一篇”和相关文章的问题,
贴出来让大家分享。
以前看到一个帖子讲用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="select 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("<a href='view.asp?id="&a2&"'>下一篇</a>")
end if
end function
%>
'定义一个thehead函数来找出下一篇的id,如果当前记录已经是最前面的一条记录,则输出文字“没有了”
<%
function thehead
headrs=server.createobject("adodb.recordset")
sql="select 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("<a href='view.asp?id="&a0&"'>上一篇</a>")
end if
end function
%>
'数据库连接文件
<!--#include file="conn.asp"-->
'取得传递过来的id,显示文章标题作者和内容
<%
id=request("id")
sql="select * from articles where id="&id
set rs=conn.execute(sql)
%>
<%
boardid=rs("boardid")
%>
<title>文章系统-<% =rs("title") %></title>
<body leftmargin="0" topmargin="0">
<!--#include file="top.asp" -->
<%do while not rs.eof%>
<table width="773" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td width="576" align="left"><table width="557" border="0" cellspacing="5" cellpadding="4" align="left"> <tr> <td colspan="2" align="center">
<span style="font-size:9pt color:#efefef"><%= rs("title") %><br> <div align="right">
<span style="font-size:9pt color:#efefef">作者:<%= rs("author") %></span></div> </span></td></tr><tr><td colspan="2" >
<span style="font-size:9pt color:#efefef">
<!--将数据库的资料取出,经过编码后输出,保持输入时的格式不变-->
<%= replace(server.htmlencode(rs("content")),chr(13),"<br>") %></span></td></tr><% a1=rs("id") %><tr><td width="269" align="right">
<!--调用前面定义的显示上一篇的函数-->
<% thehead %>
</td>
<td width="257" align="right">
<!--调用前面定义的显示下一篇的函数-->
<% thenext %></td></tr>
<% rs.movenext
loop
%></table></td><td width="217" valign="top" align="left">相关文章:
'根据当前文章的栏目号,找出同一栏目的文章
<%sql="select * from articles where boardid="&boardid&""
set rs=conn.execute(sql)%>
<%do while not rs.eof %>
<table width="207" border="0" cellspacing="2" cellpadding="2">
<tr>
<td height="20">
<a href="view.asp?id=<%=rs("id")%>">
<%= rs("title") %>
</a></td></tr></table>
<% rs.movenext%><%loop%></td>
</tr>
</table>
<!--#include file="copyright.asp" -->
</body>
<!--程序结束-->
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器