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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
两款万能的php分页类
Nov 12 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
php中strtotime函数性能分析
Nov 20 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
Dec 04 PHP
如何运行/调试你的PHP代码
Oct 23 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数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
script标签属性用type还是language
2015/01/21 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue中的inject学习教程
2019/04/24 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
什么是反射
2012/03/17 面试题
广告学专业毕业生自荐信
2013/09/24 职场文书
有创意的广告词
2014/03/18 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
父亲节寄语大全
2015/02/27 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL
Python+DeOldify实现老照片上色功能
2022/06/21 Python