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 按指定元素值去除数组元素的实现方法
Nov 04 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
从wamp到xampp的升级之路
Apr 08 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
php实现统计二进制中1的个数算法示例
Jan 23 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
javascript正则表达式总结
2016/02/29 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
loading动画特效小结
2017/01/22 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
django用户登录和注销的实现方法
2018/07/16 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
运动会100米解说词
2014/01/23 职场文书
护理职业生涯规划书
2014/01/24 职场文书
论文答辩开场白大全
2015/05/27 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书