PHP+MySQL实现在线测试答题实例


Posted in PHP onJanuary 02, 2020

这个实例主要给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。

PHP+MySQL实现在线测试答题实例

读取答题列表:

$sql = "select * from quiz order by id asc"; 
$query = mysql_query($sql); 
while ($row = mysql_fetch_array($query)) { 
 $answers = explode('###', $row['answer']); 
 $arr[] = array( 
   'question' => $row['id'] . '、' . $row['question'], 
   'answers' => $answers 
 ); 
} 
$json = json_encode($arr);

生成答题列表:

<div id='quiz-container'></div>

通过遍历出来的列表,生成答题功能:

$(function(){ 
  $('#quiz-container').jquizzy({ 
    questions: <?php echo $json;?>, //试题信息 
    sendResultsURL: 'data.php' //结果处理地址 
  }); 
});

当用户打完题,点击“完成”按钮时,会向ajax.php发送一个Ajax交互请求,ajax.php会根据用户的答题情况,比对正确答案,然后给出用户所得分。

$data = $_REQUEST['an']; 

$answers = explode('|',$data); 
$an_len = count($answers)-1; //题目数 

$sql = "select correct from quiz order by id asc"; 

$query = mysql_query($sql); 
$i = 0; 
$score = 0; //初始得分 
$q_right = 0; //答对的题数 
while($row=mysql_fetch_array($query)){ 
  if($answers[$i]==$row['correct']){ 
    $arr['res'][] = 1; 
    $q_right += 1; 
  }else{ 
    $arr['res'][] = 0; 
  } 
  $i++; 
} 
$arr['score'] = round(($q_right/$an_len)*100); //总得分 
echo json_encode($arr);

quiz表结构:

CREATE TABLE IF NOT EXISTS `quiz` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `question` varchar(100) NOT NULL, 
 `answer` varchar(500) NOT NULL, 
 `correct` tinyint(2) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; 
 
-- 
-- 转存表中的数据 `quiz` 
-- 
 
INSERT INTO `quiz` (`id`, `question`, `answer`, `correct`) VALUES 
(1, '罗马帝国曾一度辉煌,令人神往,故有“条条大陆通罗马”一说。那么,今天你是怎样理解这一谚语的准确含义的?', 'A.入乡随俗 ###B.四通八达 ###C.殊途同归 ###D.流连忘返', 3), 
(2, '找出不同类的一项:', 'A.斑马 ###B.军马 ###C.赛马 ###D.骏马 ###E.驸马', 5), 
(3, ' 蜡烛在空气中燃烧,蜡烛质量逐渐变小。这说明', 'A.物质可以自生自灭###B.发生的不是化学变化###C.不遵守质量守恒定律###D.生成物为气体,散发到空气中了', 4), 
(4, '以下哪位歌手没有获得过《我是歌手》总冠军?', 'A.羽泉###B.韩磊###C.邓紫棋###D.韩红', 3), 
(5, '下列哪个标签不是HTML5中的新标签?', 'A.<article>###B.<canvas>###C.<section>###D.<sub>', 4);

总结

以上所述是小编给大家介绍的PHP+MySQL实现在线测试答题实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 #PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 #PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 #PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 #PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 #PHP
PHP单元测试配置与使用方法详解
Dec 27 #PHP
PHP全局使用Laravel辅助函数dd
Dec 26 #PHP
You might like
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中pygame安装方法图文详解
2015/11/11 Python
深入理解python多进程编程
2016/06/12 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Python正则表达式和元字符详解
2018/11/29 Python
Python实现京东秒杀功能代码
2019/05/16 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
中科前程Java笔试题
2016/11/20 面试题
制衣厂各岗位职责
2013/12/02 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技