From 8f2f68ad4968d2ec19c8506457f4f97f73655e2b Mon Sep 17 00:00:00 2001 From: Julio Montoya <gugli100@gmail.com> Date: Tue, 12 Apr 2011 14:59:49 +0200 Subject: [PATCH] Fixing sql error --- main/user/subscribe_user.php | 105 ++++++++++++++++------------------- 1 file changed, 49 insertions(+), 56 deletions(-) diff --git a/main/user/subscribe_user.php b/main/user/subscribe_user.php index 055fb39d50..a76f3fa27c 100755 --- a/main/user/subscribe_user.php +++ b/main/user/subscribe_user.php @@ -206,20 +206,16 @@ function get_number_of_users() { } } else { - $sql = "SELECT u.user_id - FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".api_get_course_id()."' - WHERE cu.user_id IS NULL AND u.status<>".DRH." "; + $sql = "SELECT u.user_id FROM $user_table u LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".api_get_course_id()."' + WHERE cu.user_id IS NULL AND u.status<>".DRH." "; if ($_configuration['multiple_access_urls']) { $url_access_id = api_get_current_access_url_id(); if ($url_access_id !=-1) { $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $sql = "SELECT - u.user_id - FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".api_get_course_id()."' + $sql = "SELECT u.user_id FROM $user_table u + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id AND course_code='".api_get_course_id()."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id "; @@ -229,58 +225,57 @@ function get_number_of_users() { } else { // students - - if (api_get_session_id() != 0) { - $sql = "SELECT u.user_id - FROM $user_table u - LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".api_get_course_id()."' AND id_session ='".api_get_session_id()."' - WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; - if ($_configuration['multiple_access_urls']) { - $url_access_id = api_get_current_access_url_id(); - if ($url_access_id !=-1) { - $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $sql = "SELECT u.user_id - FROM $user_table u - LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".api_get_course_id()."' AND id_session ='".api_get_session_id()."' - INNER JOIN $tbl_url_rel_user as url_rel_user - ON (url_rel_user.user_id = u.user_id) - WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; - } + if (api_get_session_id() != 0) { + $sql = "SELECT u.user_id + FROM $user_table u + LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".api_get_course_id()."' AND id_session ='".api_get_session_id()."' + WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; + if ($_configuration['multiple_access_urls']) { + $url_access_id = api_get_current_access_url_id(); + if ($url_access_id !=-1) { + $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $sql = "SELECT u.user_id + FROM $user_table u + LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".api_get_course_id()."' AND id_session ='".api_get_session_id()."' + INNER JOIN $tbl_url_rel_user as url_rel_user + ON (url_rel_user.user_id = u.user_id) + WHERE cu.id_user IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; } - } else { + } + } else { - $sql = "SELECT u.user_id - FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; + $sql = "SELECT u.user_id + FROM $user_table u + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; - // we change the SQL when we have a filter - if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ - $field_identification = explode('*',$_GET['subscribe_user_filter_value']); - $sql .= " - LEFT JOIN $table_user_field_values field_values - ON field_values.user_id = u.user_id - WHERE cu.user_id IS NULL AND u.status<>".DRH." - AND field_values.field_id = '".Database::escape_string($field_identification[0])."' - AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; - } else { - $sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." "; - } + // we change the SQL when we have a filter + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + $field_identification = explode('*',$_GET['subscribe_user_filter_value']); + $sql .= " + LEFT JOIN $table_user_field_values field_values + ON field_values.user_id = u.user_id + WHERE cu.user_id IS NULL AND u.status<>".DRH." + AND field_values.field_id = '".Database::escape_string($field_identification[0])."' + AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; + } else { + $sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." "; + } - if ($_configuration['multiple_access_urls']) { - $url_access_id = api_get_current_access_url_id(); + if ($_configuration['multiple_access_urls']) { + $url_access_id = api_get_current_access_url_id(); - if ($url_access_id !=-1) { + if ($url_access_id !=-1) { - $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $sql = "SELECT u.user_id - FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."' - INNER JOIN $tbl_url_rel_user as url_rel_user - ON (url_rel_user.user_id = u.user_id) - WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status<>".DRH." "; - } + $sql = "SELECT u.user_id + FROM $user_table u + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."' + INNER JOIN $tbl_url_rel_user as url_rel_user + ON (url_rel_user.user_id = u.user_id) + WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status<>".DRH." "; } + } } } @@ -300,15 +295,13 @@ function get_number_of_users() { $a_course_users = CourseManager :: get_user_list_from_course_code($_SESSION['_course']['id'], true, $_SESSION['id_session']); } else { $a_course_users = CourseManager :: get_user_list_from_course_code($_SESSION['_course']['id'], true); - } + } foreach ($a_course_users as $user_id=>$course_user) { $users_of_course[] = $course_user['user_id']; } - } - //executing the SQL statement - $res = Database::query($sql); + $res = Database::query($sql); while ($user = Database::fetch_row($res)) { $users[] = $user[0]; }