主题:  为什么投票结果无法更新?

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#12006/4/18 19:21:27
不好意思又来麻烦蓝鲸大哥,而且是新开主题。之前我问过蓝鲸大哥,可是我如法做了,还是没找出毛病来,只好请教蓝鲸大哥了。我的投票显示是这样的:

图片如下:

我的投票表是这样的:

图片如下:

我的检查更新投票结果页代码是:
Action=Request("Action"
VoteType=request("VoteType"
VoteOption=replace(request("VoteOption"," ",""
id=request("id"

if action="vote" and VoteOption="" then
response.write "<script language='javascript'>"
response.write "alert('您什么也没有选择!');"
response.write "location.href='vote.asp?action=view';"
response.write "</script>"
response.end
end if

if action="vote" and request.cookies("buyok_Voted"=request.ServerVariables("remote_address" then
response.write "<script language='javascript'>"
response.write "alert('您已经投票了,不能重复投票!');"
response.write "location.href='vote.asp?action=view';"
response.write "</script>"
response.end
end if

'投票
If Action = "vote" And VoteOption<>"" Then
arrOptions=split(VoteOption,","
for i=0 to ubound(arrOptions)
answer=cstr("answer"&arrOptions(i))
conn.execute "Update Vote set "&answer&"="&answer&"+1 where id="&id
next
'将用户IP写入COOKIES防止重复投票
response.cookies("buyok_Voted" = request.ServerVariables("remote_address"
' response.cookies("buyok_Voted".expires=now+1

response.write "<script language='javascript'>"
response.write "alert('投票已提交,感谢您的参与!');"
response.write "location.href='vote.asp?action=view';"
response.write "</script>"
response.end
End If
蓝鲸大哥能不能耐心帮我看看,我帮同学做的协会网站就剩这个功能有问题了。非常谢谢蓝鲸大哥的帮助。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#22006/4/20 11:13:35
answer=cstr("answer"&arrOptions(i))
conn.execute "Update Vote set "&answer&"="&answer&"+1 where id="&id

试着输出一下SQL语句,字段名是answeranswer1,而不想要的answer1。其它没仔细看,问题可能出在这里

另外,这样数据库设计不好,就好象公司有一百个员工,你把每一个员工设成一个字段。
数据库设计应该把每个问题都设为一个记录而不是字段。更新时,只要更新相应ID号的记录就行了。这样设计可以更灵活,并且扩展性好。


非常大鱼

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#32006/4/20 14:00:43
输出不了,输出没有任何东西。你说的那样的数据表结构我也作过,可是设计后台就费事些。问题不在你说的那里。并且我同IP多次投票都不会警告“已经投了票。”



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#42006/4/22 1:48:52
怎么会输不出
sql = "Update Vote set "&answer&"="&answer&"+1 where id="&id
Response.Write sql & "<br>"
conn.execute sql

至于库设计方面,如果是临时用一次,随便怎么做了
但如果是长期的系统就值得考虑了。


非常大鱼

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#52006/4/22 15:11:35
不行啊,不管我点投票还是点查看结果都是下面一个结果,没有任何改变。

图片如下: