query_first("SELECT radio,checkbox FROM ".$db_prefix."setmark"); //缓存所有正确答案 $answers = $db->query("SELECT id,title,choicetype,answer FROM ".$db_prefix."title WHERE 1"); $answer_array = array(); $titles = array(); $error = array(); $tmark = 0; while($row = $db->fetch_array($answers)){ $answer_array[$row[id]] = $row[answer]; $titles[$row[id]] = $row[title]; if($row[choicetype]=="radio"){ $tmark += $getsetmark[radio]; }elseif($row[choicetype]=="checkbox"){ $tmark += $getsetmark[checkbox]; } } $mark = 0; foreach($_POST[radio] as $titleid=>$choice){ if($choice == $answer_array[$titleid]){ $mark += $getsetmark[radio]; }else{ $error[] = array($titleid,$choice,$answer_array[$titleid]); } } foreach($_POST[checkbox] as $titleid=>$choice){ $c_answers = explode(",",$answer_array[$titleid]); $flag = false; foreach($c_answers as $answer){ if(!in_array($answer,$choice)){ $flag = true; } } foreach($choice as $answer){ if(!in_array($answer,$c_answers)){ $flag = true; } } if($flag){ $error[] = array($titleid,implode(",",$choice),$answer_array[$titleid]); continue; } $mark += $getsetmark[checkbox]; } $msg = "本次考试总分{$tmark}分\\n你的得分{$mark}分\\n"; if($error){ $msg .= "以下题目你回答错误:\\n"; foreach($error as $v){ $msg .= "{$titles[$v[0]]}\\n你的答案:{$v[1]}\\n正确答案:{$v[2]}\\n\\n"; } } echo ""; exit; } if(!$threadid){ echo "参数错误"; echo ''; exit; } //考试名称 $threads = $db->query_first("SELECT name FROM ".$db_prefix."thread WHERE id=$threadid"); $threadtitle = $threads[name]; //题目表单 $conditions = $threadid ? "threadid='$threadid'" : 1; $titles = $db->query("SELECT * FROM ".$db_prefix."title WHERE $conditions ORDER BY id ASC"); $titlelist = false; $int = 0; while($title = $db->fetch_array($titles)){ $int++; $choices = false; $tests = $db->query("SELECT * FROM ".$db_prefix."choice WHERE extends=$title[id] ORDER BY id ASC"); $i=0; while($test=$db->fetch_array($tests)) { $i++; $checked = $test["IsDefault"] ? "checked" : false; if($title[choicetype]=="radio"){ $choices .= " $test[choice]"; // }else{ $choices .= " $test[choice]";// } } eval("\$titlelist .= \"".gettemplate("test_title_list")."\";"); } eval("\$header = \"".gettemplate("test_header")."\";"); eval("\$footer = \"".gettemplate("test_footer")."\";"); eval("dooutput(\"".gettemplate("test_test")."\");"); ?>