如果不能确定选项最多几个或者不想使用以上方法,可以考虑建两个表:
题目表字段:题目编号(PK)、题干
选项表字段:题目编号、选项号、选项
其中,选项表的题目编号字段可以设置与题目表的外键关联,选项表的题目编号和选项号构成复合主键
数据库的设计本人认为可以这样,提交表单应该再设置一个隐藏域,储存题目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我!
首先你要理清逻辑,现在有学生、题目(不同的题目类型可以用一个字段来区分,不需要每种类型的题目都要新建一个表)、试卷三个实体表;学生-试卷,一个学生可能会有很多试卷,因此是一对多关系;
试卷-题目,一个试卷有多个题目,一个题目可能出现在多张试卷上,因此是多对多关系;
学生和题目没有直接关系;
因此学生和试卷的关系最好的方式是在试卷表中设置外键对应学生编号(当然你新建一张表来存放他们之间的关系肯定也没问题);
试卷和题目是多对多关系,因此你只能多加一张试卷和题目的对应表来描述他们之间的关系。
这种解决方案需要四张表:学生表、题目表、试卷表、题目-试卷关系表;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)