您的位置:首页技术开发ASP技巧 → 基于ACCESS数据库的纯asp论坛制作心得

基于ACCESS数据库的纯asp论坛制作心得

时间:2004/11/7 4:10:00来源:本站整理作者:蓝点我要评论(0)

感觉做一个论坛不像想象中的那么容易,但也不像想象中的那么复杂:),经过4天的浴血奋战,终于从对论坛制作一无所知到今天的论坛数据结构和组织形势初步确定,中间参考了sunamd,bigeagled,廖家远等的思路,并得到了赖皮王子,hooke,bigeagle大虾的热心帮助,谨以此文一并表示感谢。

    bigeagle的文章采用了sql数据库存储过程来实现,但现实中支持asp的免费站点本来就少,支持数据库的免费站点更少,支持sql数据库的免费站点。。。反正我没见过,哪位知道告诉我一声:),所以我等穷人只有用access了,我就是采用asp+access的形式实现了类似chinaasp的论坛。。闲话少说,言归正传。

    先说一下数据库的结构,主要有两个表,一个存储用户信息user,一个存储论坛文章及信息mytext。用户信息就不用多说了,主要就是mytext论坛文章的组织,要实现相同主题的帖子组织在一块、跟贴紧随父贴、后发帖居上、更重要的是要认清父贴,否则会造成一层回复一律排在一起,二层回复排在一起,三层。。。如下:

根贴

  回复1:根贴

  回复2:根贴

    回复:回复1:根贴

  。。。。

所以这里有几个关键的字段:

id(自动):自动编号(作用:显示后来居上)

rootid(整型):根贴的id(作用:实现相同主题的帖子排在一块)

level(整型):贴子的层数(作用:显示的时候实现缩进)

orderid(单精):相同主题帖子排序的基数(作用:相同主题帖子排序的先后依据,即防止出现上例的情况)

fatherid(整型):父贴id,贴子的血缘关系

排序的sql语句:

select * from mytext orderby rootid desc,orderid,id desc



实现显示缩进(修正后的"不用递归实现树形结构.."):

  level=0    

  response.write "
    "    

      do while not rs.eof            

        if rs("level")
          for i=rs("level") to level-1   

            response.write "
"    

      next    

    end if    

    if rs("level")>level then    

      response.write "
    "    

        end if    

        response.write "
  • 主题:。。
  • "    

      level=rs("level")    

      rs.movenext      

      loop

      response.write "
"      

%>     

注意:原"不用递归实现树形结构..."文章有误,这是修改后的代码.



另外有一点经验要注意:就是在单精类型数据传值的时候,如:orderid,request上来的数据要先replace(orderid," ","+"),再csng转换,不然会报告"类型不匹配",我一开始百思不得其解,后来发现在传值的时候必定会把单精数据"+"弄丢,变成空格,所以要先替换再转型.



以上只是我个人的看法,如果有错误之处或有更好的方法欢迎交流gwlx@21cn.com,大家可以到211.90.159.61(开放时间:8:15~17:30)或http://www.21union.net/sqlbbs看实例并多多灌水呦:)..




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案