|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天比来又拜读了飞鸟的WWWBOARD4高文,又有飞鸟的一些注释,比BOARD3好读多了,的确是个计划的挺优异的PRG。我依据我的实践必要,写了一个精装版和一个全体版(内核可满是飞鸟的BOARD4),临时还没UPLOAD,只是往失落了一些Ifpwssys...,Ifwinnt_chinese等。厥后以为飞鸟的程序有的中央能够改一下,现写出来,另加上一些BOARD4的我的心得,供喜好BOARD4的伴侣参考。不知对不合错误,请飞鸟斧正。
飞鸟的BOARD次要在数据库布局,布局的申明飞鸟已讲了,我不在叙说。
List.asp语句:
1、先掏出根帖(字段Parentid=0),并将失掉的纪录集反序分列
Selectannounceid,boardidfromannounceWhereboardid="&boardid&"andparentid=0ORDERBYannounceidDESC
2、使用Getrows从纪录会合选出20条根帖,存进到rootid数组中。
3、选出rootid数组中的Announceid,构成好像(1,2,3,4,5,.....20)的格局,
(飞鸟:有个判别语句:IfUbound(rootid)>1好象不要也能够吧)
4、由于每组会商的话题(根帖-父帖-子帖)它们都具有一个不异的Rootid,Rootid之间的干系:
子帖(rootid)=父帖(rootid)=根帖的(rootid)=根帖的(announcdid),(这个在存储子帖时注重一下)分明这点很主要,以是飞鸟用:
selectAnnounceID,parentID,child,boardID,userID,UserName,UserEmail,URL,URLTitle,URLPic,Topic,DateAndTime,hits,length,RootID,layer,ordersfromAnnouncewhereBoardID="&cstr(boardID)&"and(rootIDin"&selStr&")ORDERBYrootIDdesc,orders"
将这20条根帖及其一切子帖一古脑儿的全带了出来,不异的Rootid靠Orders升序排序,
5、记着layer只是把持层的,eg:我给你写了一个复兴帖,那末我就是你的子帖->layer+1,但还要把最新到场的帖子放在最下面显现,这就靠orders了,由于orders接纳的是升序分列,那末就提掏出父帖的rootid,orders将统一组(rootid)且orders>父帖的orders的Orders值加+1,就能够完成了,只不外写的时分倒过写:
conn.execute"updateannouncesetorders=orders+1whererootid="&cstr(RootID)&"andorders>"&cstr(iOrders)
Orders=Orders+1
6、关于把持缩进的layer,那就用数值套出来算吧,即刻就分明了。
7、飞鸟tree.inc有些变量没用上,删除吧!
8、飞鸟判别一个用户是不是新用户,用了轮回。我用:
dimnewuser,rs,SQL
newuser=false
Setrs=Server.CreateObject("ADODB.Recordset")
SQL="Select*fromuserWhereUcase(username)="&Ucase(username)&""
rs.openSQL,connmdb,1,3
Ifrs.eofthen
rs.addnew
newuser=true
rs("username")=username
rs("userpassword")=userpassword
rs.update
Iferrthen
founderr=true
message="对不起,操纵数据库失利,请稍侯再试"
showmessage(message)
Else
userid=rs("userid")
EndIf
Else
Ifrs("userpassword")userpasswordthen
founderr=true
message="您的暗码不准确(大概该名字被别人占用了,请实验用其余名字)"
showmessage(message)
Else
userid=rs("userid")
EndIF
EndIf
9、对了飞鸟,Announce表中,"Userid"字段好象起不到感化,是否是能够CUT失落,由于表中已有了"username","useremail"字段。
xixi,罗嗦了一通^O^
</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; |
|