/**
  * @param int $question_id
  * @param int $exercise_id
  * @param string $course_code
  * @param int $session_id
  * @param string $questionType
  * @return int
  */
 public static function get_number_students_question_with_answer_count($question_id, $exercise_id, $course_code, $session_id, $questionType = '')
 {
     $track_exercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
     $track_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
     $courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
     $courseUserSession = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
     $question_id = intval($question_id);
     $exercise_id = intval($exercise_id);
     $courseId = api_get_course_int_id($course_code);
     $session_id = intval($session_id);
     if ($questionType == FILL_IN_BLANKS) {
         $listStudentsId = array();
         $listAllStudentInfo = CourseManager::get_student_list_from_course_code(api_get_course_id(), true);
         foreach ($listAllStudentInfo as $i => $listStudentInfo) {
             $listStudentsId[] = $listStudentInfo['user_id'];
         }
         $listFillTheBlankResult = FillBlanks::getFillTheBlankTabResult($exercise_id, $question_id, $listStudentsId, '1970-01-01', '3000-01-01');
         return FillBlanks::getNbResultFillBlankAll($listFillTheBlankResult);
     }
     if (empty($session_id)) {
         $courseCondition = "\n            INNER JOIN {$courseUser} cu\n            ON cu.c_id = c.id AND cu.user_id  = exe_user_id";
         $courseConditionWhere = " AND relation_type <> 2 AND cu.status = " . STUDENT;
     } else {
         $courseCondition = "\n            INNER JOIN {$courseUserSession} cu\n            ON cu.c_id = c.id AND cu.user_id = exe_user_id";
         $courseConditionWhere = " AND cu.status = 0 ";
     }
     $sql = "SELECT DISTINCT exe_user_id\n    \t\tFROM {$track_exercises} e\n    \t\tINNER JOIN {$track_attempt} a\n    \t\tON (\n    \t\t    a.exe_id = e.exe_id AND\n    \t\t    e.c_id = a.c_id AND\n    \t\t    e.session_id  = a.session_id\n            )\n            INNER JOIN {$courseTable} c\n            ON (c.id = a.c_id)\n    \t\t{$courseCondition}\n    \t\tWHERE\n    \t\t    exe_exo_id = {$exercise_id} AND\n                a.c_id = {$courseId} AND\n                e.session_id = {$session_id} AND\n                question_id = {$question_id} AND\n                answer <> '0' AND\n                e.status = ''\n                {$courseConditionWhere}\n            ";
     $result = Database::query($sql);
     $return = 0;
     if ($result) {
         $return = Database::num_rows($result);
     }
     return $return;
 }