【www.gdgbn.com--mysql教程】
一款简单的php教程 mysql教程考试系统,实例方法是判断题目数组是否为空,为空则从题库中随机取出12道题 id
include "./inc/header.php";
if($_session["arr"] == ""){ #判断题目数组是否为空,为空则从题库中随机取出12道题 id
$sql = "select * from an";
$select = $db->select($sql);
for($i=0;$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"]."
";
echo "error:".$_session["error"]."
";
}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"]."
";
#echo $num;
}else{
$num = 1;
$_session["num"] = $num;
}
$smarty->assign("num",$num);
$smarty->assign("ob",$sel);
$smarty->display("index.html");