[03-06] ASP技术技巧简辑系列之--论坛动态版块
:lol其实动态版块就是可以在后台添加和删除版块的功能,道理很简单,就是用一个数据表格来收集有关版块的信息了.
如果是高手的话看到这里就不要再看了吧,我这里专门为菜鸟写教程的,呵呵!
下面就说一下如何用数据表来动态实现论坛版块的功能了:
关于怎么建立数据库,怎么建立ODBC想信不要再说了吧,前面有这样的教程,大家找找看看吧.
首先在数据库中建立一个表:比如 board表
字段内容为:title(论坛的主题即版块的名字),classname(所属论坛,即这个论坛是在哪个大分类下面),discription(论坛内容描述),boardown(论坛版主)
下面就建立一个bbsindex.asp文件吧!
我写了一个,完整代码如下:
--------------------------------------
<!-- #include file="conn.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<%
set rs = server.CreateObject("adodb.recordset")
sql = "select id,title,classname from board whereclassname="&"'总分类'"&" order by id desc"
rs.open sql,conn,1,1
do while not rs.eof
%>
<body>
<table width="800" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCC99">
<tr bgcolor="#CCCC99">
<td colspan="4" align="left"> <%=rs("title")%></td>
</tr>
<% class_title = rs("title")
set rs_class = server.CreateObject("adodb.recordset")
sql2 = "select * from board where classname='"&class_title&"' order by id desc"
rs_class.open sql2,conn,1,1
do while not rs_class.eof
%>
<tr>
<td width="45" rowspan="2"> </td>
<td width="420"><div align="left"><a href="bbs_showboard.asp?boardid=<%=rs("id")%>"><%=rs_class("title")%></a><br>
<br><%=rs_class("discription")%></div></td>
<td width="112"> </td>
<td width="213"> </td>
</tr>
<tr>
<td>版主:<%=rs_class("boardown")%></td>
<td colspan="2"> </td>
</tr>
<%rs_class.movenext
loop
%>
</table>
<%rs.movenext
loop
rs.close
rs_class.close
conn.close
set rs=nothing
set rs_class=nothing
set conn=nothing
%>
</body>
</html> 代码说明:
1、包含文件不用说了吧,还有建立一个记录集,这里是board这个表。
2、使用了两层循环将论坛所有版块列出来,第一层循环如下代码所示,
<%
set rs = server.CreateObject("adodb.recordset")
sql = "select id,title,classname from board whereclassname="&"'总分类'"&" order by id desc"
rs.open sql,conn,1,1
do while not rs.eof
%>
<%rs.movenext
loop
rs.close
rs_class.close
conn.close
set rs=nothing
set rs_class=nothing
set conn=nothing
%>
主要目的是为了查询出大分类版块,大家注意这里有个classname="&"'总分类'"&" 条件查询,
第二层循环如下代码所示:
<% class_title = rs("title")
set rs_class = server.CreateObject("adodb.recordset")
sql2 = "select * from board where classname='"&class_title&"' order by id desc"
rs_class.open sql2,conn,1,1
do while not rs_class.eof
%>
<%rs_class.movenext
loop
%>
主要是根据大分类来找出其下面的版块,注意classname='"&class_title&"' 查询条件
3、<a href="bbs_showboard.asp?boardid=<%=rs("id")%>"><%=rs_class("title")%></a>
这句代码就是查看具体论坛的主题的,注意这里用boardid=<%=rs("id"),因为这个字段在表中是唯一的。
4、要注意的几个地方:
看仔细代码所在的HTML的位置及循环结束的地方,否则可能导致显示出错。
注意嵌套的循环,第二层循环的查询条件就是从第一层循环中得来的.
请注意我的第一个查询条件classname="&"'总分类'"&" ,这里可能根据需要有所不同,
我做的时候是将下面有版块的叫“总分类”。
5、其他的没什么说的了,就是开始在调试的时候,大家可以直接在数据库中将BOARD表中,加入相应的内容。
也可以开始就将添加删除版块的功能做好,
怎么样添加版块不要我说了吧,就是做个表单,把内容传到BOARD数据库中。删除就是从数据库中删去一条记录!
6、以上代码只是二级结构动态论坛,大家可以根据这种原理去做三级及更多级别的论坛。 这个学期我们有开此课程哦 晕简单的要命;P ;P;P 大家一起来.NET! ASP只要三天就能看懂 七天就能自己写完全适合自学 的 ASP很容易实现论坛.
楼主讲得都是基础..我也很注重基础的东西 今天早上刚好看完了ASP存取数据库第八章..在这里又得巩固了.谢谢哦. 我还没会搞动态的,也没学过但想学有那位提供一下有限资源来分享一下啊 ASP..PHP都很容易!!!!!!!!!!!!!!!!!!!!!!!!!!!! 有那么容易么 `!~我怎么都不会啊` 1~那位高手可以指点下怎么入门 啊!~????? 你们学asp就得学习网络安全,你门不觉得这样写漏洞百出吗???????????????? 为社区提供新闻线索,得奖励 111 思明论坛!
下次努力哦!……楼上的"高手"`````~很想看看你的高见~~~~别老是在那装B~~~最看不爽的就是这种人! 我喜欢你的龙!! 给我个图片呀!!楼上的!! 这世界竟然有人整天捡到钱,怎么会没人丢钱呢——摸摸口袋,发现你少了 385 思明论坛!
下次努力哦!……说白了入门简单深入就难了
页:
[1]