php mysql 在线考试系统

一款简单的php教程 mysql教程考试系统,实例方法是判断题目数组是否为空,为空则从题库中随机取出12道题 id

 

<?php
include './inc/header.php';
if($_session['arr'] == ''){                #判断题目数组是否为空,为空则从题库中随机取出12道题 id
        $sql = 'select * from an';
        $select = $db->select($sql);
        for($i=0;$i<count($select);$i++){
                $aid .= $select[$i]['id'].',';
        }
        $arr = explode(',',substr($aid,0,strlen($aid)-1));
        shuffle($arr);
        $_session['arr'] = array_slice($arr,0,12);
}
$array = $_session['arr'];
if($_server['request_method'] == "post"){
        if($_session['arr1'] == ""){                #arr1存的是已答题的id       
                $ary = $array;
                array_shift($ary);                                #每答完一道题后,删除数组第一位
                $_session['arr1'] = $ary;
        }else{
                $ary = $_session['arr1'];
                array_shift($ary);
                $_session['arr1'] = $ary;
        }
        $id = $_post['id'];
        $answer = $_post['answer'];
        $sqq = 'select * from an where id='.$id.' and answer="'.$answer.'"';
        $qus = mysql_query($sqq);
        $rows = @mysql_num_rows($qus);
        if($rows){
                $_session['right'] .= $id.',';                #将答对题id存到session['right']
                $rightarr = explode(',',substr($_session['right'],0,strlen($_session['right'])-1));                #判断对题数
                if(count($rightarr) < 10){                        #如果小于10则继续答下一题
                        $sql2 = 'select * from an where id='.$ary[0];
                        $sel = $db->select($sql2);
                }elseif(count($rightarr) == 10){                #如果等于10则跳出此次问答
                        $time = time();
                        $_session['jiang'] = md5($time);
                        #echo '<script>location.href="right.php?uid='.$time.'";</script>';
                        $success = array('second'=>'3','url'=>'right.php?uid='.$time,'title'=>'答对十题','right'=>'恭喜你,你已连续答对十道题,将跳转到兑奖页面。');
                        $smarty->assign('msg',$success);
                        $smarty->display('success.html');
                        exit();
                }
        }else{
                $_session['error'] .= $id.',';                #将答错题id存到session['error']
                $errorarr = explode(',',substr($_session['error'],0,strlen($_session['error'])-1));  #判断错题数
                if(count($errorarr) < 2){                       
                        $sql2 = 'select * from an where id='.$ary[0];
                        $sel = $db->select($sql2);
                }elseif(count($errorarr) == 2){                #如果答错两题,则重新计数
                        unset($_session['right']);
                        unset($_session['error']);
                        unset($_session['arr1']);
                        unset($_session['arr']);
                        unset($_session['num']);
                        session_destroy();
                        #echo '<script>location.href="index.php";</script>';
                        $success = array('second'=>'3','url'=>'index.php','title'=>'答错两题','error'=>'对不起,你已连续答错两题,将重新计算');
                        $smarty->assign('msg',$success);
                        $smarty->display('success.html');
                        exit();
                }
        }
        echo 'right:'.$_session['right'].'<br        />';
        echo 'error:'.$_session['error'].'<br        />';
}else{
        $sqll = 'select * from an where id='.$array[0];
        $sel = $db->select($sqll);
}
if(isset($_session['num'])){                        #目前答第几题
        $num = $_session['num'] + 1;
        $_session['num'] = $num;
        #echo $_session['num'].'<br        />';
        #echo $num;
}else{
        $num = 1;
        $_session['num'] = $num;
}
$smarty->assign('num',$num);
$smarty->assign('ob',$sel);
$smarty->display('index.html');

时间: 2024-09-20 15:40:20

php mysql 在线考试系统的相关文章

基于Web在线考试系统的设计与实现

这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址:http://download.csdn.net/detail/sdksdk0/9361973   数据库原理课程设计说明书              基于Web在线考试系统的设计与实现             目  录   1 课题背景与意义.3 1.1课题开发背景.3 1.2 课题开发意义.3 2 系统需求分析.4 2.1 项目要求.4 2.2 开发方案.5 2.3开发环境.5 3 总体开发.

用ASP开发一个在线考试系统

在线 本文所介绍的应用程序是以ASP编程的初学者为读者的.虽然这个例子非常简单,但是它对于那些试图在线对他们的雇员.学生或客户进行考试的组织是非常有用的. 关于这个应用程序 我们的应用程序中的第一个界面包含在index.asp 中,由一个注册页组成,其中有两个输入域,一个是用户名,另一个是口令.非会员要想参加考试的话必须要注册.这一页是初始屏幕,为用户提供用户名和口令的输入框. 开发一个在线考试系统-asp在线考试系统"> 需要注意的是,这两个将要批准的会员域应该有客户机端的JavaScr

jsp在线考试系统-jsp文件

js|在线 一个在线考试系统,测试你的jsp知识,代码不是特别多,所以不加注释了(http://jspbbs.yeah.net) answer.jsp <%-- Include directive --%> <%@ include file="header.html" %> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR&g

jsp在线考试系统-htm文件

js|在线 一个在线考试系统,测试你的jsp知识,代码不是特别多,所以不加注释了(http://jspbbs.yeah.net) index.jsp <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR> <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sa

用ASP开发试题库与在线考试系统(1)

摘 要 利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,我们基于B/S模式研究开发了试题库与在线考试系统这一ASP应用程序.它运用方便.操作简单,效率很高,现阶段虽只实现了试卷的客观题部分,但已具有试题(卷)录入.修改和查询,手工组卷与自动组卷以及进行在线考试等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,并给出其详细的成绩分析与试卷评估,同时也大大减轻了教师出题.组卷和改卷等繁重的工作量. 引 言 现阶段,学校与社会上的各种考

用ASP开发试题库与在线考试系统(2)

二.运行环境与系统结构 此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网.其运行要求和逻辑结构分别如下: 客户端:Windows95/98,Internet Explorer(IE)等 服务器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0及其以上版本,IE等:或者Windows98,Personal Web Server(PWS),IE等. 数据库:采用SQL Server,运行于服务器端. 试

利用ASP+XML架设在线考试系统

利用ASP + XML 架设在线考试系统 <-------------此程序非本人原创-------->  使用这个在线的考试系统,我们能处理任何类型在线测试. 尽管我们一般是用传统方式实现,读者非常希望将. 如果从总体上考虑. 所有问题都储存在服务器( 它可能在数据库里) 里面的的xml 文件里. 用户准备花费考试,然后用户测试的通体将通过微软的XML HTTP 组件传送到浏览器. 使用同一个XML HTTP 组件,每当用户请求一个问题的时候,那些问题内容被从服务器解释并且显示在页上. 对用

用ASP开发试题库与在线考试系统

  摘 要利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,我们基于B/S模式研究开发了试题库与在线考试系统这一ASP应用程序.它运用方便.操作简单,效率很高,现阶段虽只实现了试卷的客观题部分,但已具有试题(卷)录入.修改和查询,手工组卷与自动组卷以及进行在线考试等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,并给出其详细的成绩分析与试卷评估,同时也大大减轻了教师出题.组卷和改卷等繁重的工作量. 引 言 现阶段,学校与社会上的各种

新手java-Java新手,想问一个关于在线考试系统的问题。

问题描述 Java新手,想问一个关于在线考试系统的问题. 现在做一个在线考试系统,从数据库拿到了一整张试卷(有单选,多选,判断,简答题),把题目一题占一页的显示在页面上,然后点击next到第二题.如何把选的这些答案保存到数据库?是点击一下next保存一个,还是一张试卷全做完了点击submit一起保存?具体怎么解决呢? 解决方案 随便呗,要是一起保存,就写全局的静态Map存数据,最后一次提交,保存Map数据,然后在清空占用内存 解决方案二: 你在去题目的同时为何不一起把答案取出来,然后在做完试卷的