123kof110 发表于 2006-3-6 21:02:49

[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">&nbsp;<%=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">&nbsp;</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">&nbsp;</td>
    <td width="213">&nbsp;</td>
</tr>
<tr>
    <td>版主:<%=rs_class("boardown")%></td>
    <td colspan="2">&nbsp;</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>

123kof110 发表于 2006-3-6 21:46:35

代码说明:

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、以上代码只是二级结构动态论坛,大家可以根据这种原理去做三级及更多级别的论坛。

Lareina 发表于 2006-3-7 21:29:40

这个学期我们有开此课程哦

linsie 发表于 2006-3-9 10:01:35

晕简单的要命;P

闲人 发表于 2006-3-9 10:26:13

;P;P

zkkpkk 发表于 2006-3-22 19:04:26

大家一起来.NET!

因为帅烦 发表于 2006-3-28 13:47:02

ASP只要三天就能看懂 七天就能自己写完全适合自学 的

ST学生 发表于 2006-4-12 12:14:29

ASP很容易实现论坛.
楼主讲得都是基础..我也很注重基础的东西   今天早上刚好看完了ASP存取数据库第八章..在这里又得巩固了.谢谢哦.

coolxft 发表于 2006-4-23 16:50:12

我还没会搞动态的,也没学过但想学有那位提供一下有限资源来分享一下啊

冷血无情 发表于 2006-5-6 02:41:03

ASP..PHP都很容易!!!!!!!!!!!!!!!!!!!!!!!!!!!!

114535265 发表于 2006-5-17 15:06:43

有那么容易么 `!~我怎么都不会啊` 1~那位高手可以指点下怎么入门 啊!~?????

200519872 发表于 2006-12-7 20:19:59

你们学asp就得学习网络安全,你门不觉得这样写漏洞百出吗????????????????

欣云 发表于 2006-12-7 20:48:55

为社区提供新闻线索,得奖励 111 思明论坛!

   下次努力哦!……楼上的"高手"`````~很想看看你的高见~~~~别老是在那装B~~~最看不爽的就是这种人!

冷血无情 发表于 2006-12-7 20:53:07

我喜欢你的龙!! 给我个图片呀!!楼上的!!

因为帅烦 发表于 2006-12-14 19:18:13

这世界竟然有人整天捡到钱,怎么会没人丢钱呢——摸摸口袋,发现你少了 385 思明论坛!

   下次努力哦!……说白了入门简单深入就难了
页: [1]
查看完整版本: [03-06] ASP技术技巧简辑系列之--论坛动态版块