| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2470 人关注过本帖
标题:更新只有第一条记录(update)求助
取消只看楼主 加入收藏
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:7 
更新只有第一条记录(update)求助
<[email=%@LANGUAGE=]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>
<% option explicit %>
<!-- #include file="conn.asp"-->
<%
dim rs,sql,f_dianji,id,f_url   '定义变量供使用,不定义变量会出错哦!
id=request.querystring("f_id") '把前个页面的ID值获取并付给变量id
if id="" then
response.write "<script language='javascript'>alert ('乐乐提示:\n\n★非法操作!')</script>"
response.write "<script language='javascript'>window.location='friends.asp'</script>"
end if
on error resume next
set rs=server.createobject("adodb.recordset")
sql="select * from friend where f_id=" & id
rs.open sql,lele,1,1
f_dianji=rs("f_dianji")
f_url=rs("f_url")             '读取数据库中的字段f_url以供response.redirect使用跳转
if err then
response.write "<script language='javascript'>alert ('乐乐提示:\n\n★出现错误码!')</script>"
response.write "<script language='javascript'>window.location='friends.asp'</script>"
end if
if f_dianji=0 then      '如果点击为0则付值为1,否则则执行加1并更新数据库现有的数据!
rs("f_dianji")=1
else
sql="update friend set f_dianji=f_dianji+1 where f_id=" & id
lele.execute(sql)
end if
response.redirect(f_url)   '执行完后立即跳转到f_url的地址!
%>
------------------------------------
请问一下,为什么只有第一条记录id=1可以成功点击一次+1其它的没有反应的?
搜索更多相关主题的帖子: update 记录 
2008-05-06 17:32
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
我的域名/fshow.asp?f_id=6
是这样的,但是我按照版主的方法改了下,还是只可以更新第一条记录,不知道为什么其它的记录还是不更新!请教下是什么问题的呢?谢谢指教

学习编程www.
2008-05-06 17:43
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
不好意思,找到问题了。
if f_dianji=0 then      '如果点击为0则付值为1,否则则执行加1并更新数据库现有的数据!
rs("f_dianji")=1
else
sql="update friend set f_dianji=f_dianji+1 where f_id=" & id
lele.execute(sql)
end if
response.redirect(f_url)   '执行完后立即跳转到f_url的地址!
-------------------------------
我把上面的改成:
------------------------------
sql="update friend set f_dianji="&f_dianji&"+1 where f_id=" & id
lele.execute(sql)
response.redirect(f_url)   '执行完后立即跳转到f_url的地址!
%>
就可以了,然后把数据库的字段默认值设置为:0  只是不明白为什么?
if f_dianji=0 then      '如果点击为0则付值为1,否则则执行加1并更新数据库现有的数据!
rs("f_dianji")=1

这个判断等于没有判断一样!呵呵





既然出现了更新,则下面这句写法有问题
rs.open sql,lele,1,1
要改成
rs.open sql,lele,1,3

这个问题。我想我是直接用execute的应该不用改成参数是:1,3吧
rs.open sql,lele,1,1这个在我这里现在只是读取时用到了!呵呵,初学者真的不太明白!谢谢指教了!

学习编程www.
2008-05-06 17:51
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
sql="update friend set f_dianji=f_dianji+1 where f_id=" & id  
改成
sql="update friend set f_dianji="&f_dianji&"+1 where f_id=" & id
版主,问下,我用这两个都可以了!不太明白是第二个加上:"&f_dianji&"这个。跟:我写的那个不一样的吗?我都是用了第一种!:"&f_dianji&"很少用过!不太明白它们有什么不一样,呵呵!

学习编程www.
2008-05-06 17:59
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
哦!现在明白了!版主的解释完全可以看懂了!原来错在了rs("f_dianji")=1这里了!如果为0其实是判断到了。但是虽然负值了!但是还没有更新的操作!呵呵

学习编程www.
2008-05-06 18:11
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
版主,你这句话说得有些学问:


f_dianji=f_dianji+1  应该是错误的,因为这里的f_dianji不是变量名了

请问下为何会说:f_dianji不是变量名了?可是在现在这个程序中这两种方法都可行,点击都加了1。视它不是变量名,真的不太懂!

可呵,楼上的。谢谢!只是看到你在贴子后面道歉?有点不解!呵呵,有错误纠正过来嘛!何况是在解决问题呢!我得感谢你才是!呵呵!

学习编程www.
2008-05-06 23:23
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
难道版主的意思是指:
set rs=server.createobject("adodb.recordset")
sql="select * from friend where f_id=" & id
rs.open sql,lele,1,1
要在这里后面定义:dim f_dianji
才算f_dianji=f_dianji+1这个是有效的?可是我还是不太明白:
f_dianji="&f_dianji&"+1      f_dianji=f_dianji+1
似乎没有什么不一样的!看不太懂!就比如:

sql="select * from friend where f_id=" & id
这句来说,如果用版主的方法则是写成:
sql="select * from friend where f_id="&id&""这样吗?
可是感觉好像都一样,还是不太明白有什么不同。呵呵 可能是我没理解。初学者真的凝问多多的!太感谢了!

学习编程www.
2008-05-06 23:28
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
f_id=" & id  同等 f_id="&id&""  后面的 &""可以省略,但就不能同等 f_id=id
你说对吗?
这个是的,如果f_id=id这样好像是对f_id进行负值了!

f_dianji="&f_dianji&"+1      f_dianji=f_dianji+1

但是我现在用这两个方法都能成功点击加1的功能!所以还是比较含糊!
现在我个人理解成这样了:
f_dinaji="&f_dianji&"+1
这是:3=3+1     4=4+1     5=5+1
f_dianji=f_dianji+1
这个好像也是:3=3+1  然后f_dianji已经是4了,所以4=4+1  
f_dianji+1  我觉得前面定了变量rs("f_dianji")那应该在以前加了1后读出的数据才是的吧?还是不太了解这两年!

学习编程www.
2008-05-07 09:46
快速回复:更新只有第一条记录(update)求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046187 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved