发布网友 发布时间:2022-04-24 13:00
共4个回答
懂视网 时间:2022-04-29 15:47
php选择题数据库如何设计
php选择题数据表可以设计如下:
E-R图
选择题数据表
列名 | 说明 | 数据类型 | 约束 |
ChoiceQst_id | 试题号 | tinyint | not null IDENTITY(1, 1) primary key |
ChoiceQst_Question | 题型号 | int | not null foreign key |
ChoiceQst_Info | 内容 | text | not null |
ChoiceQst_OP1 | 操作1 | text | not null |
ChoiceQst_OP2 | 操作2 | text | not null |
ChoiceQst_OP3 | 操作3 | text | not null |
ChoiceQst_OP4 | 操作4 | text | not null |
ChoiceQst_answ | 答案 | char | not null |
更多PHP相关知识,请访问PHP中文网!
热心网友 时间:2022-04-29 12:55
常规思路
表1(问题)
question
id(主键) text(问题内容) rightAnswer(正确答案)
表2(备选答案)
answer
id(主键) qid(对应的问题id) text(备选答案)
$sql="SELECT * FROM question";
$r = mysql_query($sql);
while($row = mysql_fetch_rows($r)){
//输出题干
echo $row[1];
$subsql="SELECT * FROM answer WHERE qid = '".$row[0]."'";
$subr = mysql_query($subsql);
while($subrow = mysql_fetch_rows($subr)){
//输出备选答案
echo subrow[2];
}
}
我相信这是比较主流的设计思路,希望的帮到你
至于比对答案的时候,有一种简单做法,你传回来的答案不是数组吗,将数据库正确答案以字符串形式输出,打散成数组,求2个数组的交集,根据交集数量判断正确个数
不懂欢迎追问
热心网友 时间:2022-04-29 14:13
我先提供一下我自己的思路,不使用这么多字段,只需要几个即可,如下:
id
answer
questions
question
1
四大...
火_指_造_印
火_指_造_印
2
运动
中_篮_排_棒
排_棒
...
然后,在读取问题的时候,将预设答案以下划线分隔开,得预设答案。
而用户选择答案提交后,将用户提交的答案以下划线合并,再与数据库的正确答案比较。
不知这样如何?
热心网友 时间:2022-04-29 15:48
数据库的设计本人认为可以这样,提交表单应该再设置一个隐藏域,储存题目ID,例如
" name="an_id">
处理页面可以使用将获取到的答案数组
$_POST['itm']进行遍历,用循环$value查找question,可以使用函数strpos(),该函数如果返回数字,则是正确答案,如果返回false,则是错误答案
if(isset($_POST['an_id'])){
$an_id = $_POST['an_id'];
$qus_sql = "select `question` from `vote_answer` where id = $an_id";
$query = mysql_query($qus_sql);
while($row = mysql_fetch_row($query)){
$question = $row[0];
}
$user_question = $_POST['itm'];
foreach($user_question as $value){
if(strpos($question,$value){
echo '正确答案';
}else{
echo '错误答案';
}
}
}全手写代码,有错误请百度HI我!