主题:  这个判断为什么没用?

楚楚

职务:普通成员
等级:1
金币:1.0
发贴:187
#12003/10/27 10:03:35
麻烦高手帮我看看,红色的这个判断为什么没用?
我的愿意是要 cz="del" ,img 、huoli都减1。
但事实上没有减少。
我错在哪儿?应该怎样写?谢谢。
<%
if Request.QueryString("cz")="" then
Response.Redirect"mminfo.asp?info=错误的参数"
else
cz=Request.QueryString("cz")
end if

if cz="del" then
conn.execute "delete from desktop where id="&Request.QueryString("id")
Response.Redirect"mmadminfile.asp"
rs_lar("img")=rs_lar("img")-1
rs_lar("huoli")=rs_lar("huoli")-1
rs_lar.update
rs_lar.close
end if

else

....
....

if cz="addfile" then
rs_lar("img")=rs_lar("img")+1
rs_lar("huoli")=rs_lar("huoli")+1
end if
rs_lar.update
rs_lar.close

set rs=nothing
conn.close
Set conn=Nothing
if cz="addfile" then
Response.Redirect"mmadd.asp"
end if
if cz="editfile" then
Response.Redirect"mmadminfile.asp"

end if

....
....



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22003/10/27 10:30:46
Response.redirect 就已经转向了,下面的还没有来得及执行



raynube

职务:普通成员
等级:1
金币:0.0
发贴:34
#32003/10/27 22:52:22
conn.execute "delete from desktop where id="&Request.QueryString("id")
rs_lar("img")=rs_lar("img")-1
rs_lar("huoli")=rs_lar("huoli")-1
rs_lar.update
rs_lar.close
Response.Redirect"mmadminfile.asp"
end if



楚楚

职务:普通成员
等级:1
金币:1.0
发贴:187
#42003/10/28 8:49:47
现在我将这个文件精简到了仅仅下面的内容,程序运行正确,但仍然那个判断不起作用。
也就是if cz="del" 的时候,rs_lar("img")=rs_lar("img")-1和rs_lar("huoli")=rs_lar("huoli")-1并没有减少。
奇怪呀。这是怎么回事?


<%
if Request.QueryString("cz")="" then
Response.Redirect"mminfo.asp?info=错误的参数"
else
cz=Request.QueryString("cz")
end if
if cz="del" then
conn.execute "delete from desktop where id="&Request.QueryString("id")
rs_lar("img")=rs_lar("img")-1
rs_lar("huoli")=rs_lar("huoli")-1
end if
rs_lar.update
rs_lar.close
Response.Redirect"mmadminfile.asp"
set rs=nothing
conn.close
Set conn=Nothing
%>

这里涉及到两个数据库。
delete from desktop 是一个数据库,rs_lar是另一个数据库。



null

职务:普通成员
等级:1
金币:0.0
发贴:15
#52003/10/28 12:31:40
呵呵,你的rs_lar命名的记录集,怎么没看到建立的语句?
还有,怎么最后又来个set rs=nothing——没看到rs是什么啊



楚楚

职务:普通成员
等级:1
金币:1.0
发贴:187
#62003/10/28 16:17:15
记录集在前面:
<%

'叛断Session变量是否超时
if isempty(session("u_id")) or session("u_id")="" then
response.redirect "timeout.asp"
end if

if session("u_id")=1 then response.redirect "../notreg.asp"

'叛断此用户是否已经注册
Set conn1 = Server.CreateObject("ADODB.Connection")
DBPath1 = Server.MapPath("date.mdb")
conn1.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath1
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id =" & session("u_id")
rs_lar.open sql,conn1,3,2

if rs_lar.eof and rs_lar.bof then
response.redirect "notregist.asp"
response.end
end if
%>


我现在改成这样了:
......
......
if cz="del" then
conn.execute "delete from desktop where id="&Request.QueryString("id")
conn.execute "update rs_lar("img")=rs_lar("img")-1 where user_id =" & session("u_id")"
conn.execute "update rs_lar("huoli")=rs_lar("huoli")-1 where user_id =" & session("u_id")"
Response.Redirect"mmadminfile.asp"
set rs=nothing
conn.close
Set conn=Nothing
%>

运行时提示说语句未结束。
帮忙搞定呀,眼看要成功了。谢谢大家。



null

职务:普通成员
等级:1
金币:0.0
发贴:15
#72003/10/28 17:16:47
conn.execute "update rs_lar("img")=rs_lar("img")-1 where user_id =" & session("u_id")"
conn.execute "update rs_lar("huoli")=rs_lar("huoli")-1 where user_id =" & session("u_id")"

是否这两个红色的引号的问题?



raynube

职务:普通成员
等级:1
金币:0.0
发贴:34
#82003/10/28 21:27:14

......
<%if cz="del" then
conn.execute "delete from desktop where id="&Request.QueryString("id")
conn.execute "update rs_lar("img")=rs_lar("img")-1 where user_id =" & session("u_id")"
conn.execute "update rs_lar("huoli")=rs_lar("huoli")-1 where user_id =" & session("u_id")"
Response.Redirect"mmadminfile.asp"
[color=red]end if[/color]
set rs=nothing
conn.close
Set conn=Nothing



风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#92003/10/29 16:29:23
conn.execute "update larchives set img = img - 1,huoli = huoli - 1 where user_id =" &session("u_id")
一个是没有表名,还有一个就是楼上说的最后那个"是多余的,试试

编辑历史:[此帖被jhsdx编辑过(编辑时间2003-10-29 16:35:40)]
[此帖被jhsdx编辑过(编辑时间2003-10-29 16:36:58)]
[此帖被jhsdx编辑过(编辑时间2003-10-29 16:39:30)]


楚楚

职务:普通成员
等级:1
金币:1.0
发贴:187
#102003/10/30 8:41:16
这里有两个数据库,我希望当删掉mmdb/mm.mdb 中某条记录的时候,能够更新mdb/date.mdb的相关记录。
程序运行正常,就是这句代码不起作用:
rs_lar("huoli")=rs_lar("huoli")-1
rs_lar("img")=rs_lar("img")-1

全部代码非常简单,如下:

<%
Set conn1 = Server.CreateObject("ADODB.Connection")
DBPath1 = Server.MapPath("mdb/date.mdb")
conn1.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath1
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id =" & session("u_id")
rs_lar.open sql,conn1,3,2

if rs_lar.eof and rs_lar.bof then
response.redirect "notregist.asp"
response.end
end if
%>
<%
dim conn
dim connstr
on error resume next
connstr="DBQ="+server.mappath("mmdb/mm.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>

<%
dim sql
dim rs
set rs=server.createobject("adodb.recordset")
sql="delete from desktop where id="&Request.QueryString("id")
rs.open sql,conn,1,1
rs.close
set rs=nothing
conn.close
rs_lar("huoli")=rs_lar("huoli")-1
rs_lar("img")=rs_lar("img")-1
rs_lar.update
rs_lar.close
set conn=nothing
Response.Redirect"mmadminfile.asp"
%>


huoli 跟 img 都是数字类型的.
在执行添加的时候,
rs_lar("huoli")=rs_lar("huoli")+1
rs_lar("img")=rs_lar("img")+1
一切正常。
但是删除的时候,就死活不变了。

我希望:
1、在会员上传一张图片的时候,他的活力“huoli”和图片计数"img"都自动加1。
2、当管理员删除他的一张图片的时候,他的活力“huoli”和图片计数"img"都自动减少1。

现在我的第一个希望实现了。但第二个死活没法成功。

全部代码就在这里,很简单的代码。找不出原因来……
看来我只能放弃第二个要求呢,删掉图片,他的活力等都不减少……
喜欢钻研的高手不妨继续研究一下,我已经放弃了。 :eek:

编辑历史:[此帖被lemontree编辑过(编辑时间2003-10-30 10:58:11)]


风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#112003/10/30 20:28:22
我觉的是逻辑的问题
这个页面应该是管理员操作的吧
怎么拿管理员的session("u_id")来找注册用户的记录集
那你删除的就是管理员的活力和图片数