Fixing query see #5175

skala
Julio Montoya 13 years ago
parent e3807a01ce
commit 13d202bed4
  1. 43
      main/inc/lib/tracking.lib.php

@ -349,12 +349,9 @@ class Tracking {
* @return string value (number %) Which represents a round integer about the score average.
*/
public static function get_avg_student_exercise_score($student_id, $course_code, $exercise_id = 0, $session_id = null) {
// protect datas
$course_code = Database::escape_string($course_code);
// get the informations of the course
$a_course = CourseManager :: get_course_information($course_code);
if (!empty($a_course)) {
$course_info = api_get_course_info($course_code);
if (!empty($course_info)) {
// table definition
$tbl_course_quiz = Database::get_course_table(TABLE_QUIZ_TEST);
$tbl_stats_exercise = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
@ -373,30 +370,31 @@ class Tracking {
$condition_session = " AND session_id = $session_id ";
}
$sql = "SELECT count(id) FROM $tbl_course_quiz
WHERE c_id = {$a_course['real_id']} AND active <> -1 $condition_quiz ";
WHERE c_id = {$course_info['real_id']} AND active <> -1 $condition_quiz ";
$count_quiz = Database::fetch_row(Database::query($sql));
$quiz_avg_total_score = 0;
if (!empty($count_quiz[0]) && !empty($student_id)) {
$condition_user = "";
$condition_user = "";
if (is_array($student_id)) {
$condition_user = " AND exe_user_id IN (".implode(',',$student_id).") ";
} else {
$condition_user = " AND exe_user_id = '$student_id' ";
}
if (empty($exercise_id)) {
if (empty($exercise_id)) {
$sql = "SELECT id FROM $tbl_course_quiz
WHERE c_id = {$a_course['real_id']} AND active <> -1 $condition_quiz";
$exercises = Database::fetch_row(Database::query($sql));
$exercise_list = array();
$exercise_id = 0;
if (!empty($exercises)) {
foreach($exercises as $row) {
$exercise_list[] = $row['id'];
}
$exercise_id = implode("','",$exercise_list);
}
WHERE c_id = {$course_info['real_id']} AND active <> -1 $condition_quiz";
$result = Database::query($sql);
$exercise_list = array();
$exercise_id = null;
if (Database::num_rows($result)) {
while ($row = Database::fetch_array($result)) {
$exercise_list[] = $row['id'];
}
}
if (!empty($exercise_list)) {
$exercise_id = implode("','",$exercise_list);
}
}
$count_quiz = Database::fetch_row(Database::query($sql));
@ -410,7 +408,7 @@ class Tracking {
exe_cours_id = '$course_code' AND
orig_lp_item_id = 0 $condition_session
ORDER BY exe_date DESC";
$res = Database::query($sql);
$row = Database::fetch_array($res);
$quiz_avg_score = 0;
@ -634,7 +632,7 @@ class Tracking {
$tbl_stats_exercices = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$tbl_stats_attempts = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$course = CourseManager :: get_course_information($course_code);
$course = api_get_course_info($course_code);
if (!empty($course)) {
@ -658,6 +656,7 @@ class Tracking {
$condition_session = "";
$session_id = intval($session_id);
if (count($lp_ids) > 0) {
$condition_session = " AND session_id = $session_id ";
} else {

Loading…
Cancel
Save