当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP文章系统解决方案

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP文章系统解决方案


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 104 ::
收藏到网摘: n/a

首先感谢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%>