| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2470 人关注过本帖
标题:更新只有第一条记录(update)求助
只看楼主 加入收藏
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:16 
更新只有第一条记录(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
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分: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

[[it] 本帖最后由 hmhz 于 2008-5-6 17:42 编辑 [/it]]
2008-05-06 17:37
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
1.调试的时候把下面这句注释掉
on error resume next
2.if f_dianji=0 then      '如果点击为0则付值为1,否则则执行加1并更新数据库现有的数据!
rs("f_dianji")=1
既然出现了更新,则下面这句写法有问题
rs.open sql,lele,1,1
要改成
rs.open sql,lele,1,3
2008-05-06 17:41
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
我的域名/fshow.asp?f_id=6
是这样的,但是我按照版主的方法改了下,还是只可以更新第一条记录,不知道为什么其它的记录还是不更新!请教下是什么问题的呢?谢谢指教

学习编程www.
2008-05-06 17:43
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
楼上的看清楚,上面的只是读取,1,1就可以了
下面的
sql="update friend set f_dianji=f_dianji+1 where f_id=" & id
lele.execute(sql)
才是真正修改程序
2008-05-06 17:44
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
不明白楼主要修改的哪些字段,从你的程序看,你只修改f_dianji字段的内容
2008-05-06 17:48
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
还有你说的第一条记录是指id=1的吗?
你改id=6的不可以改吗?
2008-05-06 17:50
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
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
很明显 判断 if f_dianji=0 then 内容中有0,就会执行 rs("f_dianji")=1
 这个语句了
而这个语句在这里是无法执行的,因为这样写就得把 1,1改成1,3
并且 rs("f_dianji")=1下面要加个 rs.update
但一个lele.execute "update friend set f_dianji="&f_dianji&"+1 where f_id="&id
就足够了,不需要在判断是否为0了,因为 f_dianji="&f_dianji&"+1 里的"&f_dianji&"为0的话,就是 f_dianji=0+1 结果还是f_dianji=1 写入了
2008-05-06 18:02
快速回复:更新只有第一条记录(update)求助
数据加载中...
 
   



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

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