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');
本文地址:http://www.phprm.com/code/36123.html
转载随意,但请附上文章地址:-)