当前位置: 首页 > 后端技术 > PHP

PHP+MySQL实现一个在线测试答案示例

时间:2023-03-30 02:55:42 PHP

读取答案列表:复制代码1$sql="select*fromquizorderbyidasc";2$query=mysql\_query($sql);3while($row=mysql\_fetch\_array($query)){4$answers=explode('###',$row['answer']);5$arr[]=array(6'question'=>$row\['id'\].','.$row['question'],7'answers'=>$answers8);9}10$json=json\_encode($arr);复制代码生成答案列表:

遍历列表生成答案函数:1$(function(){2$('#quiz-container').jquizzy({3questions:,//测试题信息4sendResultsURL:'data.php'//结果处理地址5});6});当用户完成输入问题并单击“完成”按钮时,ajax.php发送Ajax交互请求,ajax.php会根据用户的回答比较正确答案,然后给用户打分。复制代码1$data=$_REQUEST['an'];23$answers=explode('|',$data);4$an\_len=count($answers)-1;//题目数量56$sql="selectcorrectfromquizorderbyidasc";78$query=mysql\_query($sql);9$我=0;10$分数=0;//初始分数11$q_right=0;//正确回答的问题数12while($row=mysql\_fetch\_array($query)){13if($answers\[$i]==$row['correct']){14$arr['资源'][]=1;15$q_right+=1;16}else{17$arr['res'][]=0;18}19$i++;20}21$arr\['score'\]=round(($q_right/$an_len)*100);//总分22echojson_encode($arr);复制代码quiz表结构:复制代码1CREATETABLEIFNOTEXISTS`quiz`(2`id`int(11)NOTNULLAUTO_INCREMENT,3`question`varchar(100)NOTNULL,4`answer`varchar(500)NOTNULL,5`correct`tinyint(2)NOTNULL,6PRIMARYKEY(`id`)7)ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=6;89--10--转储表中的`quiz`数据11--1213INSERTINTO`quiz`(`id`,`question`,`answer`,`correct`)VALUES14(1,'罗马帝国曾经辉煌迷人,所以有“大洲通罗马”的说法那么,你怎么理解这句谚语的准确性今天?是什么意思?','A.入乡随俗###B.四通八达###C.异途同归###D.流连忘返return',3),15(2,'找出不同类型的物品:','A.Zebra###B.ArmyHorse###C.RacingHorse###D.Horse###E.驸马',5),16(3,'蜡烛在空气中燃烧,蜡烛的质量逐渐降低。这表明','A.物质可以自生自灭###B.发生的事情不是a化学变化###C.不遵守质量守恒定律###D.产物是气体,排放到空气中',4),17(4,'下面哪位歌手有没有赢得《我是歌手》冠军?','A.玉泉###B.韩磊###C.邓紫棋###D.韩红',3),18(5,'以下哪个标签不是HTML5中的新标签吗?','A.
###B.###C.
###D.',4);复制代码