当前位置:编程学习 > php >>

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');

补充:Php教程,Php常用代码 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,