PHP+MySQL实现在线测试答题实例
这个实例主要给大家介绍如何使用jQuery+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);
本文转自:https://www.sucaihuo.com/php/113.html 转载请注明出处!
PHP+MySQL实现在线测试答题实例的更多相关文章
- PHP连接局域网MYSQL数据库的简单实例
PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...
- The MySQL C API 编程实例
在网上找了一些MYSQL C API编程的文章,看了后认为还是写的不够充分,依据自己经验写了这篇<The MySQL C API 编程实例>,希望对须要调用到MYSQL的C的API的朋友有 ...
- MySQL体系结构及多实例
MySQL客户端和服务器端模型 MySQL是一个典型C/S,服务器端与客户端两部分组成 服务器端程序 mysqld mysql自带的客户端(mysql mysqladmin mysqldump等) ...
- MySQL主从备份配置实例
转载自:https://www.cnblogs.com/ahaii/p/6307648.html MySQL主从备份配置实例 场景: 1.主服务器192.168.0.225.从服务器192.168.0 ...
- MySQL 5.7 多实例安装部署实例
1. 背景 MySQL数据库的集中化运维,可以通过在一台服务器上,部署运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务.各个实例之间是相互独立的,每个实例的dat ...
- PHP+Mysql统计文件下载次数实例
PHP+Mysql统计文件下载次数实例,实现的原理也很简单,是通过前台点击链接download.php传参id,来更新点击次数. 获取文件列表: <?php require 'conn.php' ...
- python测试mysql写入性能完整实例
这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...
- MySQL数据库入门多实例配置
MySQL数据库入门——多实例配置 前面介绍了相关的基础命令操作,所有的操作都是基于单实例的,mysql多实例在实际生产环境也是非常实用的,因为必须要掌握 1.什么是多实例 多实例就是一台服务器上开启 ...
- 【转载】MySQL启多个实例
很多朋友都想在一台服务器上运行多个MySQL Instance,究竟怎么做呢?首先要明晰几个原理, 简称为mysqld读取my.cnf的顺序:第一搜,首先读取/etc/my.cnf,多实例这个配置文件 ...
随机推荐
- Laravel 6.X + Vue.js 2.X + Element UI 开发知乎流程
本流程参照:CODECASTS的Laravel Vuejs 实战:开发知乎 视频教程 1项目环境配置和用户表设计 2Laravel 开发知乎:用户注册 3Laravel 开发知乎:用户登录 4Lara ...
- [python]python中的一些包以及他们的基本用处和安装
pika可以用来连接rabbitmqpip install pika -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ...
- TimeSeriesEditor时间序列编辑软件之实战ReoGrid表格控件和Zedgraph绘图控件
最近用ReoGrid表格控件和Zedgraph绘图控件写了一个TimeSeriesEditor时间序列编辑软件,如下图. 目的就是体验一下这两个空间的用法,感觉还是挺好用的, 关于软件的使用说明可以访 ...
- SystemC中文教程一
SystemC是什么 首先, SystemC不是一门新的语言,而是基于C++开发的library:因此,你所熟悉的C++知识都可以在SystemC建模时使用:理论上来说,SystemC library ...
- Ubuntu中安装pycharm
1.首先在官网上下载pycharm 2.下载完成后解压,进入到解压文件夹里的bin,找到pycharm.sh 3.使用终端启动:sh pycharm.sh 4.关于破解: 通过命令打开hosts:cd ...
- 使用KVC键值编码
掌握KVC从不使用setter.getter.点语法开始. ----- 前言 对象的内部状态是由属性进行封装的.访问对象属性的方式平时在开发过程中用得最多的是getter方法和点语法.键值编程KVC也 ...
- jquery $.ajax status为200 却调用了error方法
参考: https://blog.csdn.net/shuifa2008/article/details/41121269 https://blog.csdn.net/shuifa2008/artic ...
- Python之json库
JSON简介 JSON (JavaScript Object Notation) 是一种用于表示结构化数据的流行数据格式. 常用于服务器和Web应用程序之间传输和接收数据. 在Python中,JSON ...
- nginx 书籍
1.<实战nginx> 2.<深入理解nginx> 3.nginx开发从入门到精通 http://tengine.taobao.org/book/ 4.Nginx源码学习,配置 ...
- 在Centos下单机部署kubernetes
官方安装手册 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ ...