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中获取远程客户端的真实ip地址的方法
Aug 03 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
php array_reverse 以相反的顺序返回数组实例代码
Apr 11 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PDO::prepare讲解
Jan 29 PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 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利用单例模式实现日志处理类库
2014/02/10 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
python小白切忌乱用表达式
2020/05/29 Python
深入分析python 排序
2020/08/24 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
2014年个人思想工作总结
2014/11/27 职场文书
六年级学生评语大全
2014/12/26 职场文书
同事去世追悼词
2015/06/23 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android