Ejemplo n.º 1
0
 /**
  * 练习题统计
  */
 public function getPractiseStatistic($uid, $practiseId, $sectionId)
 {
     $tblUserPractise = new DB_Haodu_UserPractise();
     $practiseUserNum = $tblUserPractise->queryCount("where section_id={$sectionId}");
     $userPractise = $tblUserPractise->scalar("*", "where uid={$uid} and section_id={$sectionId}");
     $tblPractiseAnswerHistory = new DB_Haodu_PractiseAnswerHistory();
     $correctNum = $tblPractiseAnswerHistory->queryCount("where section_id={$sectionId} and practise_id={$practiseId} and option_id=answer_id and option_id!=0");
     $userAnswer = $tblPractiseAnswerHistory->scalar("*", "where uid={$uid} and section_id={$sectionId} and practise_id={$practiseId}");
     $wrong = $tblPractiseAnswerHistory->query("select count(1) as total, option_id from xdf_practise_answer_history where section_id={$sectionId} and practise_id={$practiseId} and option_id!=0 and option_id!=answer_id group by option_id order by total desc");
     $wrong = $wrong->fetch_array();
     $tblCoursePractise = new DB_Haodu_CoursePractise();
     $sectionPractiseList = $tblCoursePractise->fetchAll("*", "where section_id={$sectionId}");
     $sectionPractiseNum = count($sectionPractiseList);
     $word = "正确答案是%s, 您的答案是%s, 回答%s,作答用时%s.<br/>";
     $word .= "本题共被作答%s次,正确率为%s%%,易错项为%s.";
     $word = sprintf($word, self::$no2letter[$userAnswer['answer_id']], self::$no2letter[$userAnswer['option_id']], $userAnswer['answer_id'] == $userAnswer['option_id'] && $userAnswer['option_id'] != 0 ? "正确" : "错误", sprintf("%02d", floor($userPractise['spend_time'] / 60)) . "分" . sprintf("%02d", $userPractise['spend_time'] % 60) . '秒', $practiseUserNum, round($correctNum * 100 / $practiseUserNum), self::$no2letter[(int) $wrong['option_id']]);
     $statistic = array("answer_id" => self::$no2letter[$userAnswer['answer_id']], "option_id" => self::$no2letter[$userAnswer['option_id']], "is_correct" => $userAnswer['answer_id'] == $userAnswer['option_id'] && $userAnswer['option_id'] != 0 ? 1 : 0, "spend_time" => $userPractise['spend_time'], "user_total" => $practiseUserNum, "correct_rate" => round($correctNum * 100 / $practiseUserNum) . "%", "correct_ratio" => "{$userPractise['correct_num']}/{$sectionPractiseNum}", "most_wrong" => self::$no2letter[(int) $wrong["option_id"]], "word" => $word);
     return $statistic;
 }