【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");

本文来源:http://www.gdgbn.com/shujuku/27964/