Tracking: Fix users count - refs #3002

pull/4334/merge
Yannick Warnier 3 years ago
parent aba2eeaa92
commit 446a54017c
  1. 21
      public/main/inc/lib/statistics.lib.php

@ -133,6 +133,7 @@ class Statistics
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$access_url_rel_user_table = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$tblCourseCategory = Database::get_main_table(TABLE_MAIN_CATEGORY);
$tblCourseRelCategory = Database::get_main_table(TABLE_MAIN_COURSE_REL_CATEGORY);
$urlId = api_get_current_access_url_id();
$active_filter = $onlyActive ? ' AND active = 1' : '';
$status_filter = isset($status) ? ' AND status = '.intval($status) : '';
@ -142,17 +143,19 @@ class Statistics
FROM $user_table as u, $access_url_rel_user_table as url
WHERE
u.id = url.user_id AND
access_url_id = '".$urlId."'
access_url_id = $urlId
$status_filter $active_filter";
if (isset($categoryCode)) {
$categoryCode = Database::escape_string($categoryCode);
$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number
FROM $course_user_table cu, $course_table c, $access_url_rel_user_table as url
INNER JOIN $tblCourseCategory course_category ON c.category_id = course_category.id
FROM $course_user_table cu, $course_table c, $access_url_rel_user_table as url, $tblCourseRelCategory crc, $tblCourseCategory cc
WHERE
c.id = cu.c_id AND
course_category.code = '".Database::escape_string($categoryCode)."' AND
cc.code = '$categoryCode' AND
crc.course_category_id = cc.id AND
crc.course_id = c.id AND
cu.user_id = url.user_id AND
access_url_id='".$urlId."'
access_url_id = $urlId
$status_filter $active_filter";
}
} else {
@ -160,13 +163,15 @@ class Statistics
FROM $user_table
WHERE 1 = 1 $status_filter $active_filter";
if (isset($categoryCode)) {
$categoryCode = Database::escape_string($categoryCode);
$status_filter = isset($status) ? ' AND status = '.intval($status) : '';
$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number
FROM $course_user_table cu, $course_table c
INNER JOIN $tblCourseCategory course_category ON c.category_id = course_category.id
FROM $course_user_table cu, $course_table c, $tblCourseRelCategory crc, $tblCourseCategory cc
WHERE
c.id = cu.c_id AND
course_category.code = '".Database::escape_string($categoryCode)."'
cc.code = '$categoryCode' AND
crc.course_category_id = cc.id AND
crc.course_id = c.id AND
$status_filter
$active_filter
";

Loading…
Cancel
Save