类似于驾校考试的考试系统
使用到的是数据库表名为:
yhks(用户考试)表,yhkstm(用户考试题目)表,kemu(科目)表,shititimu(试题题目)表,xuanxiang(选项)表,timu(题目)表,shiti(试题)表
实现的功能:
1.进入考试界面
2.点击确定会进一步的确认以防按错
3.考试界面实现倒计时一次一道题点击确定自动跳转下一题
4.点击交卷并显示答案
代码部分(php代码在test0607)
1.选择考试
1.1选择考试后台代码----xuanzeks.php
Query($sst);$smarty->assign("ks",$ast);$smarty->display("xuanzeks07.html");
1.2选择考试前端html代码-----xuanzeks07.html
无标题文档 选择考试名称
选择考试的试题:
1.3选择考试处理代码------xianshixq.php
StrQuery($sql);echo $str;
2.考试页面
2.1考试页面后台------kaoshi.php
Query($stm);$stmmc = "select name from timu where code = '{ $atm[0][2]}'";$name = $db->StrQuery($stmmc);$sxx = "select * from xuanxiang where timu = '{ $atm[0][2]}'";$axx = $db->Query($sxx);$sall = "select * from shititimu where shiti = '{ $st}'";$aall = $db->Query($sall);$suser = "select * from users where uid = '{ $uid}'";$auser = $db->Query($suser);$sst = "select * from shiti where code = '{ $st}'";$ast = $db->Query($sst);$smarty->assign("all",$aall);$smarty->assign("dyt",$atm);$smarty->assign("tmmc",$name);$smarty->assign("tmxx",$axx);$smarty->assign("djs",$adjs);$smarty->assign("user",$auser);$smarty->assign("st",$ast);$smarty->display("kaoshi07.html");
2.2考试页面前端html代码------kaoshi07.html
考试 考试页面
姓名:<{$user[0][2]}>考试名称:<{$st[0][3]}>, 考试时间:<{$st[0][1]}>分钟, 所属科目:<{$st[0][2]}>, 题目数量:<{$st[0][4]}>, 分值:<{$st[0][5]}><{$djs[0]}>: <{$djs[1]}><{$dyt[0][3]}>、<{$tmmc}><{foreach $tmxx as $v}><{$v[2]}>:<{$v[1]}><{/foreach}><{foreach $all as $v}><{$v[3]}><{/foreach}>
2.3考试处理后台-----kaoshicl.php
主要作用是将试题代号,用户名存入session,从数据库中计算考试时间,显示倒计时,点击题目下的确定向yhks表存入数据,考试的前提工作
StrQuery($sql);$sks = "insert into yhks values('','{ $st}','{ $uid}',0,'{ $time}')";$db->Query($sks,1);$id = $db->conn->insert_id;$_SESSION["ksid"] = $id;if(empty($_SESSION["djs"])){ $_SESSION["djs"] = array($sj,00); }header("location:kaoshi.php");
2.4倒计时处理页面------daojishi.php
0){ $miao--; }else if($miao==0){ $miao = 59; $fen--;}$attr[0] = $fen;$attr[1] = $miao;$_SESSION["djs"] = $attr;echo "{ $fen}|{ $miao}";if($miao==0 && $fen==0){ echo "交卷"; }
2.5答题过程中点击确定自动跳向下一题,ajax处理页面------dati.php
StrQuery($spd)==1){ $sql = "update yhkstm set yhda = '{ $yhda}' where kaoshi='{ $ksid}' and shunxu='{ $shunxu}'"; $db->Query($sql,1);}else{ $sql = "insert into yhkstm values('','{ $ksid}','{ $tmdh}','','{ $yhda}','{ $shunxu}')"; $db->Query($sql,1); }//跳向下一题//根据考试ID找到试题ID$sstid = "select shiti from yhks where code = '{ $ksid}'";$stid = $db->StrQuery($sstid);//根据试题ID,和顺序找下一个题目$shunxu++;$sxyt = "select * from shititimu where shiti = '{ $stid}' and shunxu='{ $shunxu}'";$axyt = $db->Query($sxyt);$stmmc = "select name from timu where code = '{ $axyt[0][2]}'";$tmmc = $db->StrQuery($stmmc); $sxx = "select * from xuanxiang where timu='{ $axyt[0][2]}'";$axx = $db->Query($sxx);$attr = array("shunxu"=>$axyt[0][3],"tmdh"=>$axyt[0][2],"tmmc"=>$tmmc,"xuanxiang"=>$axx);echo json_encode($attr);//var_dump($attr);
2.6点击尾部图标自动跳转题目,ajax处理页面------xuanzetm.php
StrQuery($sstid);//根据试题ID,和顺序找下一个题目$sxyt = "select * from shititimu where shiti = '{ $stid}' and shunxu='{ $shunxu}'";$axyt = $db->Query($sxyt);$stmmc = "select name from timu where code = '{ $axyt[0][2]}'";$tmmc = $db->StrQuery($stmmc); $sxx = "select * from xuanxiang where timu='{ $axyt[0][2]}'";$axx = $db->Query($sxx);$attr = array("shunxu"=>$axyt[0][3],"tmdh"=>$axyt[0][2],"tmmc"=>$tmmc,"xuanxiang"=>$axx);echo json_encode($attr);
2.7点击交卷并显示所考的分数------jiaojuan.php
Query($sks);//查看分值$sfz = "select fenzhi from shiti where code = '{ $aks[0][1]}'";$fz = $db->StrQuery($sfz);$zf = 0;//开始总分$sda = "select * from yhkstm where kaoshi='{ $ksid}'";$ada = $db->Query($sda);foreach($ada as $v){ $v[2];//题目 $v[4];//答案 $szq = "select daan from timu where code ='{ $v[2]}'"; $zqda = $db->StrQuery($szq);//正确答案 if($v[4]==$zqda) { $zf = $zf + $fz; } }$sxg = "update yhks set fenshu = '{ $zf}' where code = '{ $ksid}'";$db->Query($sxg,1);echo $zf;