/** * 学生答题详情 * * @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); }