找回密码
 入驻
搜索
查看: 203165|回复: 14

[03-06] ASP技术技巧简辑系列之--论坛动态版块

[复制链接]
发表于 2006-3-6 21:02:49 | 显示全部楼层 |阅读模式
: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 where  classname="&"'总分类'"&" 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>
 楼主| 发表于 2006-3-6 21:46:35 | 显示全部楼层
代码说明:

1、包含文件不用说了吧,还有建立一个记录集,这里是board这个表。

2、使用了两层循环将论坛所有版块列出来,第一层循环如下代码所示,

<%
set rs = server.CreateObject("adodb.recordset")
sql = "select id,title,classname from board where  classname="&"'总分类'"&" 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、以上代码只是二级结构动态论坛,大家可以根据这种原理去做三级及更多级别的论坛。
回复

使用道具 举报

发表于 2006-3-7 21:29:40 | 显示全部楼层
这个学期我们有开此课程哦
回复

使用道具 举报

发表于 2006-3-9 10:01:35 | 显示全部楼层
晕  简单的要命;P
回复

使用道具 举报

发表于 2006-3-9 10:26:13 | 显示全部楼层
;P;P
回复

使用道具 举报

发表于 2006-3-22 19:04:26 | 显示全部楼层
大家一起来.NET!
回复

使用道具 举报

发表于 2006-3-28 13:47:02 | 显示全部楼层
ASP只要三天就能看懂 七天就能自己写  完全适合自学 的
回复

使用道具 举报

发表于 2006-4-12 12:14:29 | 显示全部楼层
ASP很容易实现论坛.
楼主讲得都是基础..我也很注重基础的东西   今天早上刚好看完了ASP存取数据库第八章..在这里又得巩固了.谢谢哦.
回复

使用道具 举报

发表于 2006-4-23 16:50:12 | 显示全部楼层
我还没会搞动态的,也没学过但想学有那位提供一下有限资源来分享一下啊
回复

使用道具 举报

发表于 2006-5-6 02:41:03 | 显示全部楼层
ASP..PHP都很容易!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

发表于 2006-5-17 15:06:43 | 显示全部楼层
有那么容易么 `!~我怎么都不会啊` 1~那位高手可以指点下怎么入门 啊!~?????
回复

使用道具 举报

发表于 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 思明论坛!

   下次努力哦!……
说白了  入门简单  深入就难了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-9-28 19:25 , Processed in 0.058900 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表