主题:  怎样做留言管理审核功能?

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#12006/4/2 13:55:39
请教各位大虾,怎样能实现这个功能?

就是说数据库中有2个表,一个是用来管理设置用的“admin”表,一个则是用来存储留言内容用的“main”表,怎样才能实现管理设置用的“admin”表中的“shenhekaiguan”字段=no时一切正常,留言后留言内容将直接在页面上显示;但是=yes时(也就是说“留言管理审核功能”打开时),页面只筛选“main”表中的“shenhe”字段里=yes的值来显示?而且此时,如果是新的留言也将显示“审核中。。。”的字样?
小弟对这方面不是很懂,看着相关的书怎么想怎么试都不行,所以还请各位能说的简单明白一些,谢谢!!

编辑历史:[此帖最近一次被 icry5 编辑过(编辑时间:2006-04-02 17:02:54)]


ziriyan

职务:普通成员
等级:2
金币:1.0
发贴:303
注册:2002/1/28 15:58:03
#22006/4/2 23:13:00
你可以ifSQL语句,在每页开始进行判断shenhekaiguan,比如说:
<%
.........
'建立admin记录集rs
if rs("shenhekaiguan")=no then
sql="select * from main"   '不加任何条件
elseif rs("shenhekaiguan")=yes then
sql="select * from main where shenhe='yes'"   '选择shenhe为yes的记录
end if
....
'建立main记录集rs1
rs1.Open sql,conn,1,3    '在这里调用sql
.......
%>

至于新的留言也显示“审核中。。。”的字样,你可以在添加进记录的时候给shenhe字段给个默认值就是"no"就可以了,凡是“no”的记录都显示“审核中。。。”,不知道你的"shenhe"数据类型是什么,最好用“是/否”



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#32006/4/3 0:39:47
审核开关可以放到配置文件中,如 config.asp
在该文件中设置变量如
AdminCheckOut = true

这样直接读取变量,读取速度比存储在数据库中要快,并且频繁调用数据库不利于资源节省。

如果要改变,设置一下config.asp就可以了,当然你可以用个管理程序来管理config.asp文件。


非常大鱼

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#42006/4/3 13:51:54
回复“ziriyan”

谢谢ziriyan兄,真的非常感谢,写的很明白很详细,学到了不少,差不多也能看明白,不过这句不太懂是嘛意思
rs1.Open sql,conn,1,3 '在这里调用sql
在这里调用的sql是指上面的这两句吗
sql="select * from main" '不加任何条件
sql="select * from main where shenhe='yes'" '选择shenhe为yes的记录
那后面的 conn,1,3 是。。。



我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#52006/4/3 13:52:55
回复“蓝鲸”

谢谢蓝鲸兄,真的很感谢,不过审核开关不知道如何放到配置文件中
<%
AdminCheckOut = true
%>
这样可以吗,那读取变量时是不是应该这样写
<%
.........
'建立admin记录集rs
if AdminCheckOut = true then
sql="select * from main" '不加任何条件
elseif AdminCheckOut = False then
sql="select * from main where shenhe='yes'" '选择shenhe为yes的记录
end if
....
'建立main记录集rs1
rs1.Open sql,conn,1,3 '在这里调用sql
.......
%>



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#62006/4/4 14:37:22
对就这样


非常大鱼

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#72006/4/4 23:33:54
谢谢蓝鲸兄,谢谢!!又少走一些弯路。。

编辑历史:[此帖最近一次被 icry5 编辑过(编辑时间:2006-04-04 23:39:44)]


我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#82006/6/3 22:11:15
高手还是不行啊,我这个还是有问题。。怎样写都出错!(审核开关已放到配置文件中)

这样写会提示对象关闭时,不允许操作。
<%
dim sql,rs
if shenhekaiguan=0 then
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from main ORDER BY ID DESC" '不加任何条件
elseif shenhekaiguan=1 then
sql="select * from main where shenhe='true' ORDER BY ID DESC" '选择shenhe为true的记录
rs.open sql,conn,1,3
end if
rs.close
set rs=nothing
%>


这样写提示缺少对象: 'conn'
<%
if shenhekaiguan=0 then
sql="select * from main ORDER BY ID DESC" '不加任何条件
elseif shenhekaiguan=1 then
sql="select * from main where shenhe='true' ORDER BY ID DESC" '选择shenhe为true的记录
set rs=conn.Execute (sql)
end if
rs.close
set rs=nothing
%>


这个是用DW服务器行为建立的记录集,当shenhekaiguan=0时正常,=1时提示标准表达式中数据类型不匹配。
<%
Dim rs
Dim rs_numRows

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_conn_STRING
if shenhekaiguan=0 then
rs.Source = "select * from main ORDER BY ID DESC" '不加任何条件
elseif shenhekaiguan=1 then
rs.Source = "select * from main where shenhe='true' ORDER BY ID DESC" '选择shenhe为true的记录
end if
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()

rs_numRows = 0
%>



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#92006/6/5 1:07:02
这个与设置文件无关
而是你的程序写得不正确,如if...elseif...end if语句,在第一个条件中打开了rs对象,而下一个根本没打开,并且直接调用了。程序条理不清,请从基本功入手。


非常大鱼

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
注册:2004/9/3 14:22:46
#102006/6/5 20:40:25
大哥我又改了半天还是不行啊,总是显示:
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/guestbooktest/index.asp, 第 XX 行(rs.open sql,conn,1,3)
实在搞不定不太会,能不能给写个正确的附上一些说明啊,拜托!!就当教教小弟。。



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#112006/6/5 21:00:12
你要在建立记录集之时判断留言是否审核,在显示的时候再判断是否新留言。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#122006/6/5 22:03:06
where shenhe = true


非常大鱼

不惊鸟

职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2006/5/7 8:34:06
#132006/6/7 14:15:37
不用那么复杂吧,直接在留言数据表内加一数字型的字段,默认值是0,就是没有经过审核,审核后将该值update为1,在页面就只显示该字段值为1的记录