高分在线等候:checkbox问题

yhncom_36 2003-10-07 05:35:35
我现在在做一个调查表,共有10个问题需要调查,比如说第一个问题有5种答案,可以选择其中任意一个或者两个或者最多到5个,在用户提交后,我在给数据库写记录时,需要判断用户第一个问题所选择的答案,用户的选择可能是多项,也有可能是单项的,我现在将10个问题在一个表里面存放,每个问题下面对应的选项存放在一个表中,还有另外一个表是存放用户的选择项目,现在就是这个表该如何设计,因为我以后要统计每个问题下面对应的选项被用户选择的次数。


请各位指点,单选的我已经搞定,现在就是这个复选问题出来了,csdn的调查表不知道是怎么做出来的!先给100分,不够可以继续给!
...全文
41 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhncom_36 2003-10-12
  • 打赏
  • 举报
回复
谢谢各位问题已经搞定!
happymingnan 2003-10-08
  • 打赏
  • 举报
回复
up
fingerthinking 2003-10-08
  • 打赏
  • 举报
回复
一个表,10个字段,每个字段对应一个问题,比如第一个问题是多选,有5个答案,那这个字段就应该是char(5),用户选择1,3,4,则数据库此字段为10110,第一个1是对应用户选择了第一个选项,没选就是0,其他的也一样,主要是字符处理。
yangsm 2003-10-08
  • 打赏
  • 举报
回复
关注……
海牛 2003-10-08
  • 打赏
  • 举报
回复
对的答案进行编码,类似3-8译码的方式:
比如用户选了:1,3,4。则对应的编码为 二进制数00001101=13
比如用户选了:1,2,3。则对应的编码为 二进制数00000111=7
比如用户选了:1,2,3,4,5。则对应的编码为 二进制数00011111=31
······
会了吧?
冰蓝2099 2003-10-08
  • 打赏
  • 举报
回复
嗨?你只统计被选次数么?? 很简单吧?

例如 对于复选框
<input type="checkbox" name="q1" value="1">
<input type="checkbox" name="q1" value="2">

选项 表结构

id(选项ID) count (被选次数)
1 4
2 6

asp这样处理:
update set count=count+1 where id in ("&request("q1")&")

因为 如果多选 request("q1") 将会是这样的形式 "1,2" 出现



angelheavens 2003-10-08
  • 打赏
  • 举报
回复
提问表:
question_id 自动编号
qusetion_content 提问内容

问题选项表:
question_item_id 自动编号
question_id 对应以上提问表ID
question_item_content 选项内容

调查结果表:
survey_id 自动编号
question_item_id 对应以上问题选项表ID



fuzq 2003-10-08
  • 打赏
  • 举报
回复
觉得这样选用比较好点
1 2 4 8 16

然后求其各,因其组合只有一种形式
比如 11=1+2+8
12=4+8
13=1+4+8
14=2+4+8
不知楼主明白否,提供个思路,
jueban9818 2003-10-07
  • 打赏
  • 举报
回复
answer = rs("xwti")
if instr(answer,"1") then
Choice1Num = Choice1Num + 1
elseif instr(answer,"2") then
ChoiceNum2 = ChoiceNum2 + 1
elseif .....

end if
DeltaCat 2003-10-07
  • 打赏
  • 举报
回复
楼上老兄的方法有新意,学习!
李睿_Lee 2003-10-07
  • 打赏
  • 举报
回复
不好意思,忘了写成SQLStr了.如下 :
"update tabl set Choice = Choice+1 Where id in ("&request.form("checkbox")&")"
李睿_Lee 2003-10-07
  • 打赏
  • 举报
回复
最简单的方法:
update table set Choice1Num = Choice1Num + 1 Where id in (request.form("checkbox"))
DeltaCat 2003-10-07
  • 打赏
  • 举报
回复
answer = rs("xwti")
if instr(answer,"1") then
Choice1Num = Choice1Num + 1
elseif instr(answer,"2") then
ChoiceNum2 = ChoiceNum2 + 1
elseif .....

end if
yhncom_36 2003-10-07
  • 打赏
  • 举报
回复
存入的时候可以用数组,但是统计的时候如何统计呢?

比如说:第一项问题一位用户的答案xwti:1,2,5
第二位用户的答案是:1,3,4

那么我如何统计选择第一个答案的用户是两个?
请指点!
  • 打赏
  • 举报
回复
id 自动

hao 数字 '问题标号

question 文本


用户

id ...
..

xwti 文本 ’//这个用户所选的所有的问题的标号 用 1,2,5形式存

在存入的时候写个数组

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧