Пример #1
0
 /**
  * 学生答题详情
  *
  * @author TCG
  * @param int $uid 用户ID
  * @param int $etp_id 考场-试卷-学生关联表
  * @return void
  */
 public function detail($uid = 0, $etp_id = 0)
 {
     $sql = "select subject_id,exam_id from {pre}exam_test_paper where etp_id='{$uid}' ";
     $res = $this->db->query($sql)->row_array();
     $subject_id = $res['subject_id'];
     $exam_id = $res['exam_id'];
     $exam = $this->db->select('exam_id, subject_id, grade_id, class_id, total_score, qtype_score')->get_where('exam', array('exam_id' => $exam_id), 1)->row_array();
     $sql = "SELECT  q.type,etr.ques_id,etr.answer,etr.ques_subindex,etr.full_score,etr.test_score,etr.sub_ques_id \n                from {pre}exam_test_result etr\n                LEFT JOIN {pre}relate_class rc ON rc.ques_id=etr.ques_id AND rc.grade_id='{$exam['grade_id']}' AND rc.class_id='{$exam['class_id']}'\n                LEFT JOIn {pre}question q ON etr.ques_id = q.ques_id \n                where etp_id = ? and uid = ? order by rc.difficulty DESC,etr.ques_id ASC, q.sort ASC, etr.sub_ques_id";
     $query = $this->db->query($sql, array($uid, $etp_id));
     $sql = "SELECT paper_id FROM {pre}exam_test_paper WHERE etp_id='{$uid}' ";
     $res = $this->db->query($sql)->row_array();
     $paper_id = $res['paper_id'];
     $paper = PaperModel::get_paper_by_id($paper_id);
     $questions_arr = json_decode($paper['question_sort'], true);
     $questions_score = json_decode($paper['question_score'], true);
     if ($query->num_rows() > 0) {
         $sort = array();
         /* 重新排序 */
         if (is_array($questions_arr)) {
             foreach ($questions_arr as $v) {
                 foreach ($query->result_array() as $value) {
                     if ($v == $value['ques_id']) {
                         $sort[] = $value;
                     }
                 }
             }
         } else {
             $sort = $query->result_array();
         }
         $result = array();
         $result1 = array();
         foreach ($sort as $key => $row) {
             if ($row['sub_ques_id'] > 0) {
                 $result[$row['ques_id']][$row['sub_ques_id']]['answer'] = $row['answer'];
                 $result[$row['ques_id']][$row['sub_ques_id']]['full_score'] = $row['full_score'];
                 $result[$row['ques_id']][$row['sub_ques_id']]['test_score'] = $row['test_score'];
             } else {
                 $result[$row['ques_id']]['answer'] = $row['answer'];
                 $result[$row['ques_id']]['full_score'] = $row['full_score'];
                 $result[$row['ques_id']]['test_score'] = $row['test_score'];
             }
         }
         // 试题类型
         foreach ($result as $ques_id => $value) {
             $question['type'] = QuestionModel::get_question($ques_id, 'type');
             $result[$ques_id]['type'] = $question['type'];
             if (in_array($question['type'], array(1, 2, 3, 7, 9, 11, 10, 14))) {
                 if (in_array($question['type'], array(1, 2, 7, 14))) {
                     $answer = explode(',', $value['answer']);
                     $tmp_answer = array();
                     foreach ($answer as $k => $v) {
                         if (!$v) {
                             continue;
                         }
                         $option = QuestionModel::get_option($v);
                         if ($option) {
                             $tmp_answer[$k] = '<span>' . $option['option_name'] . '</span>';
                             if ($option['picture']) {
                                 $tmp_answer[$k] .= '<br/><img src="' . __IMG_ROOT_URL__ . $option['picture'] . '" />';
                             }
                         }
                     }
                     $result[$ques_id]['answer'] = $tmp_answer;
                 } else {
                     if (in_array($question['type'], array(3, 9))) {
                         $result[$ques_id]['answer'] = explode("\n", $value['answer']);
                     }
                 }
             } else {
                 foreach ($value as $sub_ques_id => $item) {
                     $sub_question['type'] = QuestionModel::get_question($sub_ques_id, 'type');
                     if (in_array($sub_question['type'], array(1, 2))) {
                         $answer = explode(',', $item['answer']);
                         $tmp_answer = array();
                         foreach ($answer as $k => $v) {
                             if (!$v) {
                                 continue;
                             }
                             $option = QuestionModel::get_option($v);
                             if ($option) {
                                 $tmp_answer[$k] = '<span>' . $option['option_name'] . '</span>';
                                 if ($option['picture']) {
                                     $tmp_answer[$k] .= '<br/><img src="' . __IMG_ROOT_URL__ . $option['picture'] . '" />';
                                 }
                             }
                         }
                         $result[$ques_id][$sub_ques_id]['answer'] = $tmp_answer;
                     } else {
                         if ($sub_question['type'] == 3) {
                             $result[$ques_id][$sub_ques_id]['answer'] = explode("\n", $item['answer']);
                         }
                     }
                 }
             }
             $groups[$question['type']]['list'][$ques_id] = $result[$ques_id];
         }
         $data['result'] = $groups;
     } else {
         die('暂无考生考试信息!');
     }
     $data['group_index'] = array('一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四');
     $this->load->view('exam_student_result/detail', $data);
 }