显示更新部分代码和上面类似。
战友社区
论坛模块重点主要是显示页面的实现如图5-5:
图5-5战友社区图
可以看到显示的重点将帖子和回复的帖子显示在一起,这里实现的方式,主要是将帖子和回复的帖子分别存在tiezi和tiezihuifu表中,其中tiezi表有一个字段id对应tiezihuifu表中的字段rid。这样,就可以先显示tiezi里的帖子,然后再显示tiezihuifu里rid字段与显示的帖子的id 字段相同的回复帖子就可以了。具体代码如下:
<% id=Request("id") %>
<%
dim rs
dim sql
set rs = server.createobject("adodb.recordset")
sql = "select*from teizihuifu where rid="&id&" order by shijian desc"
rs.Open sql,conn,1
rs.pagesize=2
a=cint(request.querystring("a"))
if a=0 then
a=1
else
rs.absolutepage=a
end if%>
第一行就是获取原帖的id号,然后定义SQL语句sql = "select*from tiezihuifu where rid="&id&" order by shijian desc"是就是查找满足rid=id的记录。
加入部队
当你想加入某个部队时,先向管理员填好申请并且点击申请如图:
图5-6加入部队界面
战友留言
在这里我们还采用了分页显示的方式显示,和页面在规定的时间内自动刷新。这样的好处就是让用户在第一时间看到在线的用户的留言,以方便互相讨论。而且还设置了作者名字和主题的长度。还有就是让程序自动获取系统的时间,用的是vbscript 的now()函数。点击上传后就会看到留言如图5-7所示
图5-7留言界面
显示留言部分主要代码为:
<meta http-equiv="refresh" content="10";url=xianshiliuyan.asp>
<% *------省略连接数据库代码
set rs=server.createobject("adodb.recordset")
rs.open"select * from liuyan ORDER BY shijian desc ",con,3
rs.pagesize=5 (设置每页显示行数)
a=cint(request.querystring("a"))
if a=0 then a=1
else rs.absolutepage=a %> <%end if %>
<tr><td><a href="xianshiliuyan.asp? a=1 ">第一页</a> </div></td>
<%If a> 1 Then %>
<a href="xianshiliuyan.asp?a=<%=a-1%> ">上一页</a> </div>
<% end if%>
<%If a <rs.PageCount Then %>
<A HREF="xianshiliuyan.asp?a=<%=a+1%>">下一页</A>
<%End If %>
---显示表头部分与前面的一样---------略
<% For a =1 To rs.Pagesize %> (循环显示内容条件)
*----------显示内容与前面的一样 ---------略------------
这里的第一行代码就是自动刷新网页功能的代码。中间部分就是要实现分页显示功能的代码。Pagesize是确定每页要显示的行数 cint()是把字符变为数字,absolutepage为当前页PageCount为分页总数。For……next就是循环显示数据。
上传图片
下面我们把图片上传到数据库并显示出来,如图5-8所示
图5-8上传图片界面
主要代码为:<%*-----------设置数据库链接后
<% Set obj = Server.CreateObject("LyfUpload.UploadFile")(创建图片上传外挂对象)
obj.extname="gif"
rs.AddNew
rs("pic").AppendChunk obj.DBContent (用AppendChunk方法对pic字段赋值)
rs.Update
rs.movelast
session("ID")=rs("ID")
*---关闭连接--------略--
<a href="pictest.asp?ID=<%=session("ID")%>">点击此处查看上传后数据库中的GIF文件!</a>
<pictest.asp>
<%*------------'设置数据库链接省略
contentType = contentType
nFieldSize = field.ActualSize
bytes = field.GetChunk(nFieldSize) (获取图片数据)
Session("Bytes") = bytes
Session("Type") = contentType
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM product",con,2,2
SetForDisplay rs("pic"), "image/gif" '"image/gif" 为MIME类型 %>
<img src="theImg.asp">
<%response.write(Session("Type"))%>
<-theimg.asp->
<%response.Expires = 0
response.Bu