From 1f2bd46bc2eb88236f0c6c32692c286c52bfa1d1 Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 23 Mar 2021 16:47:29 +0100 Subject: [PATCH] Version 20.51.32: Mar 23, 2021 Course users database table renamed. --- sql/swad.sql | 4 +- swad_API.c | 66 ++- swad_account.c | 6 +- swad_agenda.c | 152 ++--- swad_center.c | 21 +- swad_changelog.h | 7 +- swad_connected.c | 146 ++--- swad_country.c | 6 +- swad_course.c | 77 +-- swad_database.c | 6 +- swad_degree.c | 28 +- swad_department.c | 24 +- swad_enrolment.c | 572 +++++++++--------- swad_figure.c | 530 ++++++++--------- swad_file_browser.c | 9 +- swad_follow.c | 173 +++--- swad_group.c | 107 ++-- swad_indicator.c | 302 +++++----- swad_institution.c | 18 +- swad_message.c | 9 +- swad_network.c | 111 ++-- swad_notification.c | 111 ++-- swad_photo.c | 34 +- swad_profile.c | 268 +++++---- swad_report.c | 12 +- swad_role.c | 9 +- swad_search.c | 9 +- swad_timetable.c | 19 +- swad_user.c | 1357 +++++++++++++++++++++++-------------------- 29 files changed, 2197 insertions(+), 1996 deletions(-) diff --git a/sql/swad.sql b/sql/swad.sql index d1915bbfd..85e400bab 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -368,9 +368,9 @@ CREATE TABLE IF NOT EXISTS crs_records ( Txt TEXT NOT NULL, UNIQUE INDEX(FieldCod,UsrCod)); -- --- Table crs_usr: stores who users belong to what courses +-- Table crs_users: stores who users belong to what courses -- -CREATE TABLE IF NOT EXISTS crs_usr ( +CREATE TABLE IF NOT EXISTS crs_users ( CrsCod INT NOT NULL, UsrCod INT NOT NULL, Role TINYINT NOT NULL DEFAULT 0, diff --git a/swad_API.c b/swad_API.c index 63753b924..b586bbf00 100644 --- a/swad_API.c +++ b/swad_API.c @@ -661,9 +661,12 @@ static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod) { /* Get the role in the given course */ if (DB_QuerySELECT (&mysql_res,"can not get user's role", - "SELECT Role FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", - CrsCod,UsrDat->UsrCod)) // User belongs to course + "SELECT Role" + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", + CrsCod, + UsrDat->UsrCod)) // User belongs to course { row = mysql_fetch_row (mysql_res); if (row[0]) @@ -693,7 +696,8 @@ static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod) /* Get the maximum role in any course */ if (DB_QuerySELECT (&mysql_res,"can not get user's role", "SELECT MAX(Role)" - " FROM crs_usr WHERE UsrCod=%ld", + " FROM crs_users" + " WHERE UsrCod=%ld", UsrDat->UsrCod) == 1) { row = mysql_fetch_row (mysql_res); @@ -1375,11 +1379,11 @@ int swad__getCourses (struct soap *soap, "SELECT crs_courses.CrsCod," "crs_courses.ShortName," "crs_courses.FullName," - "crs_usr.Role" - " FROM crs_usr," - "crs_courses" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" + "crs_users.Role" + " FROM crs_users," + "crs_courses" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" " ORDER BY crs_courses.FullName", Gbl.Usrs.Me.UsrDat.UsrCod); @@ -3013,18 +3017,18 @@ int swad__getAttendanceUsers (struct soap *soap, // Subquery: list of users in groups of this attendance event... // ...who have no entry in attendance list of users sprintf (SubQuery,"SELECT DISTINCT crs_grp_usr.UsrCod AS UsrCod," - "'N' AS Present" + "'N' AS Present" " FROM att_groups," "crs_grp," "crs_grp_types," - "crs_usr," + "crs_users," "crs_grp_usr" " WHERE att_groups.AttCod=%ld" " AND att_groups.GrpCod=crs_grp.GrpCod" " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " AND crs_grp_types.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=crs_grp_usr.UsrCod" + " AND crs_grp_types.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=crs_grp_usr.UsrCod" " AND crs_grp_usr.GrpCod=att_groups.GrpCod" " AND crs_grp_usr.UsrCod NOT IN" " (SELECT UsrCod" @@ -3037,14 +3041,14 @@ int swad__getAttendanceUsers (struct soap *soap, // Event for the whole course // Subquery: list of users in the course of this attendance event... // ...who have no entry in attendance list of users - sprintf (SubQuery,"SELECT crs_usr.UsrCod AS UsrCod," // row[0] + sprintf (SubQuery,"SELECT crs_users.UsrCod AS UsrCod," // row[0] "'N' AS Present" // row[1] " FROM att_events," - "crs_usr" + "crs_users" " WHERE att_events.AttCod=%ld" - " AND att_events.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod NOT IN" + " AND att_events.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod NOT IN" " (SELECT UsrCod" " FROM att_users" " WHERE AttCod=%ld)", @@ -6143,19 +6147,19 @@ int swad__getLastLocation (struct soap *soap, if (DB_QueryCOUNT ("can not get session data", "SELECT COUNT(*) FROM " "(SELECT DISTINCT deg_degrees.CtrCod" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod) AS C1," // centers of my courses + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod) AS C1," // centers of my courses "(SELECT DISTINCT deg_degrees.CtrCod" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%d" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod) AS C2" // centers of user's courses + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%d" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod) AS C2" // centers of user's courses " WHERE C1.CtrCod=C2.CtrCod", Gbl.Usrs.Me.UsrDat.UsrCod, userCode)) diff --git a/swad_account.c b/swad_account.c index 3f4252882..3148d7177 100644 --- a/swad_account.c +++ b/swad_account.c @@ -1048,10 +1048,12 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat, /***** Remove user from the tables of courses and users *****/ DB_QueryDELETE ("can not remove a user from all courses", - "DELETE FROM crs_usr_last WHERE UsrCod=%ld", + "DELETE FROM crs_usr_last" + " WHERE UsrCod=%ld", UsrDat->UsrCod); DB_QueryDELETE ("can not remove a user from all courses", - "DELETE FROM crs_usr WHERE UsrCod=%ld", + "DELETE FROM crs_users" + " WHERE UsrCod=%ld", UsrDat->UsrCod); if (QuietOrVerbose == Cns_VERBOSE) diff --git a/swad_agenda.c b/swad_agenda.c index 41d6dd4da..438721dc2 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -1893,70 +1893,70 @@ unsigned Agd_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope) case Hie_Lvl_CTY: DB_QuerySELECT (&mysql_res,"can not get number of users with events", "SELECT COUNT(DISTINCT agd_agendas.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.Status=0" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.Status=0" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Cty.CtyCod); break; case Hie_Lvl_INS: DB_QuerySELECT (&mysql_res,"can not get number of users with events", "SELECT COUNT(DISTINCT agd_agendas.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.Status=0" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.Status=0" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Ins.InsCod); break; case Hie_Lvl_CTR: DB_QuerySELECT (&mysql_res,"can not get number of users with events", "SELECT COUNT(DISTINCT agd_agendas.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.Status=0" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.Status=0" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Ctr.CtrCod); break; case Hie_Lvl_DEG: DB_QuerySELECT (&mysql_res,"can not get number of users with events", "SELECT COUNT(DISTINCT agd_agendas.UsrCod)" - " FROM crs_courses," - "crs_usr," - "agd_agendas" + " FROM crs_courses," + "crs_users," + "agd_agendas" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.Status=0" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND crs_courses.Status=0" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Deg.DegCod); break; case Hie_Lvl_CRS: DB_QuerySELECT (&mysql_res,"can not get number of users with events", "SELECT COUNT(DISTINCT agd_agendas.UsrCod)" - " FROM crs_usr," - "agd_agendas" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " FROM crs_users," + "agd_agendas" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Crs.CrsCod); break; default: @@ -1998,66 +1998,66 @@ unsigned Agd_GetNumEvents (Hie_Lvl_Level_t Scope) case Hie_Lvl_CTY: DB_QuerySELECT (&mysql_res,"can not get number of events", "SELECT COUNT(*)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Cty.CtyCod); break; case Hie_Lvl_INS: DB_QuerySELECT (&mysql_res,"can not get number of events", "SELECT COUNT(*)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Ins.InsCod); break; case Hie_Lvl_CTR: DB_QuerySELECT (&mysql_res,"can not get number of events", "SELECT COUNT(*)" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "agd_agendas" + " FROM deg_degrees," + "crs_courses," + "crs_users," + "agd_agendas" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Ctr.CtrCod); break; case Hie_Lvl_DEG: DB_QuerySELECT (&mysql_res,"can not get number of events", "SELECT COUNT(*)" - " FROM crs_courses," - "crs_usr," - "agd_agendas" + " FROM crs_courses," + "crs_users," + "agd_agendas" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Deg.DegCod); break; case Hie_Lvl_CRS: DB_QuerySELECT (&mysql_res,"can not get number of events", "SELECT COUNT(*)" - " FROM crs_usr," - "agd_agendas" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=agd_agendas.UsrCod", + " FROM crs_users," + "agd_agendas" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=agd_agendas.UsrCod", Gbl.Hierarchy.Crs.CrsCod); break; default: diff --git a/swad_center.c b/swad_center.c index c202b4ba1..40e1c4948 100644 --- a/swad_center.c +++ b/swad_center.c @@ -2202,16 +2202,17 @@ unsigned Ctr_GetCachedNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery, NumCtrsWithUsrs = (unsigned) DB_QueryCOUNT ("can not get number of centers with users", "SELECT COUNT(DISTINCT ctr_centers.CtrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE %sinstitutions.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE %s" + "institutions.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", SubQuery,(unsigned) Role); FigCch_UpdateFigureIntoCache (FigureCtrs[Role],Scope,Cod, FigCch_UNSIGNED,&NumCtrsWithUsrs); diff --git a/swad_changelog.h b/swad_changelog.h index a25044f7c..487ab26eb 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -600,13 +600,18 @@ TODO: Salvador Romero Cort TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria. */ -#define Log_PLATFORM_VERSION "SWAD 20.51.31 (2021-03-23)" +#define Log_PLATFORM_VERSION "SWAD 20.51.32 (2021-03-23)" #define CSS_FILE "swad20.45.css" #define JS_FILE "swad20.6.2.js" /* TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams + Version 20.51.32: Mar 23, 2021 Course users database table renamed. (308512 lines) + 1 change necessary in database: +RENAME TABLE crs_usr TO crs_users; +DROP TABLE IF EXISTS crs_usr_copy; + Version 20.51.31: Mar 23, 2021 Attendance users database table renamed. (308312 lines) 1 change necessary in database: RENAME TABLE att_usr TO att_users; diff --git a/swad_connected.c b/swad_connected.c index 5aee63854..e6256d3fd 100644 --- a/swad_connected.c +++ b/swad_connected.c @@ -512,15 +512,15 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE ins_instits.CtyCod=%ld" " AND ins_instits.InsCod=ctr_centers.InsCod" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Cty.CtyCod); break; @@ -534,14 +534,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t " FROM ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE ctr_centers.InsCod=%ld" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Ins.InsCod); break; @@ -554,13 +554,13 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "MIN(usr_data.Sex)" // row[2] " FROM deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE deg_degrees.CtrCod=%ld" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Ctr.CtrCod); break; @@ -572,12 +572,12 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "COUNT(DISTINCT usr_data.Sex)," // row[1] "MIN(usr_data.Sex)" // row[2] " FROM crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Deg.DegCod); break; @@ -588,11 +588,11 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0] "COUNT(DISTINCT usr_data.Sex)," // row[1] "MIN(usr_data.Sex)" // row[2] - " FROM crs_usr," + " FROM crs_users," "usr_connected," "usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Crs.CrsCod); break; @@ -610,7 +610,9 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "MIN(usr_data.Sex)" // row[2] " FROM usr_connected," "usr_data" - " WHERE usr_connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" + " WHERE usr_connected.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" " AND usr_connected.UsrCod=usr_data.UsrCod"); break; case Rol_STD: @@ -626,10 +628,10 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "COUNT(DISTINCT usr_data.Sex)," // row[1] "MIN(usr_data.Sex)" // row[2] " FROM usr_connected," - "crs_usr," + "crs_users," "usr_data" - " WHERE usr_connected.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" + " WHERE usr_connected.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" " AND usr_connected.UsrCod=usr_data.UsrCod", (unsigned) Role); break; @@ -644,16 +646,16 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE ins_instits.CtyCod=%ld" " AND ins_instits.InsCod=ctr_centers.InsCod" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Cty.CtyCod, (unsigned) Role); @@ -668,15 +670,15 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t " FROM ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE ctr_centers.InsCod=%ld" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Ins.InsCod, (unsigned) Role); @@ -690,14 +692,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "MIN(usr_data.Sex)" // row[2] " FROM deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE deg_degrees.CtrCod=%ld" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Ctr.CtrCod, (unsigned) Role); @@ -710,13 +712,13 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "COUNT(DISTINCT usr_data.Sex)," // row[1] "MIN(usr_data.Sex)" // row[2] " FROM crs_courses," - "crs_usr," + "crs_users," "usr_connected," "usr_data" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Deg.DegCod, (unsigned) Role); @@ -728,12 +730,12 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t "SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0] "COUNT(DISTINCT usr_data.Sex)," // row[1] "MIN(usr_data.Sex)" // row[2] - " FROM crs_usr," + " FROM crs_users," "usr_connected," "usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " AND usr_connected.UsrCod=usr_data.UsrCod", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Role); @@ -788,14 +790,14 @@ static void Con_ComputeConnectedUsrsWithARoleCurrentCrsOneByOne (Rol_Role_t Role /***** Get connected users who belong to current course from database *****/ NumRows = DB_QuerySELECT (&mysql_res,"can not get list of connected users" " who belong to this course", - "SELECT usr_connected.UsrCod," - "usr_connected.LastCrsCod," - "UNIX_TIMESTAMP()-UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" - " FROM crs_usr," + "SELECT usr_connected.UsrCod," // row[0] + "usr_connected.LastCrsCod," // row[1] + "UNIX_TIMESTAMP()-UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2] + " FROM crs_users," "usr_connected" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Role); @@ -969,8 +971,10 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "LastCrsCod," // row[1] "UNIX_TIMESTAMP()-" "UNIX_TIMESTAMP(LastTime) AS Dif" // row[2] - " FROM usr_connected" - " WHERE UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" + " FROM usr_connected" + " WHERE UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" " ORDER BY Dif"); break; case Rol_STD: @@ -988,9 +992,9 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "UNIX_TIMESTAMP()-" "UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2] " FROM usr_connected," - "crs_usr" - " WHERE usr_connected.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" + "crs_users" + " WHERE usr_connected.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" " ORDER BY Dif", (unsigned) Role); break; @@ -1007,15 +1011,15 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected" " WHERE ins_instits.CtyCod=%ld" " AND ins_instits.InsCod=ctr_centers.InsCod" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Cty.CtyCod, (unsigned) Role); @@ -1032,14 +1036,14 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R " FROM ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected" " WHERE ctr_centers.InsCod=%ld" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Ins.InsCod, (unsigned) Role); @@ -1055,13 +1059,13 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2] " FROM deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_connected" " WHERE deg_degrees.CtrCod=%ld" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Ctr.CtrCod, (unsigned) Role); @@ -1076,12 +1080,12 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "UNIX_TIMESTAMP()-" "UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2] " FROM crs_courses," - "crs_usr," + "crs_users," "usr_connected" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Deg.DegCod, (unsigned) Role); @@ -1094,11 +1098,11 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R "usr_connected.LastCrsCod," // row[1] "UNIX_TIMESTAMP()-" "UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2] - " FROM crs_usr," + " FROM crs_users," "usr_connected" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_connected.UsrCod" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_connected.UsrCod" " ORDER BY Dif", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Role); diff --git a/swad_country.c b/swad_country.c index 2d8df6f58..231e70531 100644 --- a/swad_country.c +++ b/swad_country.c @@ -2065,13 +2065,13 @@ unsigned Cty_GetCachedNumCtysWithUsrs (Rol_Role_t Role,const char *SubQuery, "ctr_centers," "deg_degrees," "crs_courses," - "crs_usr" + "crs_users" " WHERE %scty_countrs.CtyCod=ins_instits.CtyCod" " AND ins_instits.InsCod=ctr_centers.InsCod" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", SubQuery,(unsigned) Role); FigCch_UpdateFigureIntoCache (FigureCtys[Role],Scope,Cod, FigCch_UNSIGNED,&NumCtysWithUsrs); diff --git a/swad_course.c b/swad_course.c index 8905d712a..55cbbb33c 100644 --- a/swad_course.c +++ b/swad_course.c @@ -642,17 +642,19 @@ unsigned Crs_GetCachedNumCrssWithUsrs (Rol_Role_t Role,const char *SubQuery, NumCrssWithUsrs = (unsigned) DB_QueryCOUNT ("can not get number of courses with users", "SELECT COUNT(DISTINCT crs_courses.CrsCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE %sinstitutions.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", - SubQuery,(unsigned) Role); + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE %s" + "institutions.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", + SubQuery, + (unsigned) Role); FigCch_UpdateFigureIntoCache (FigureCrss[Role],Scope,Cod, FigCch_UNSIGNED,&NumCrssWithUsrs); } @@ -2025,36 +2027,43 @@ static void Crs_EmptyCourseCompletely (long CrsCod) /* Remove all the users in groups in the course */ DB_QueryDELETE ("can not remove users from groups of a course", "DELETE FROM crs_grp_usr" - " USING crs_grp_types,crs_grp,crs_grp_usr" + " USING crs_grp_types," + "crs_grp," + "crs_grp_usr" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod", + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=crs_grp_usr.GrpCod", CrsCod); /* Remove all the groups in the course */ DB_QueryDELETE ("can not remove groups of a course", "DELETE FROM crs_grp" - " USING crs_grp_types,crs_grp" + " USING crs_grp_types," + "crs_grp" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod", + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod", CrsCod); /* Remove all the group types in the course */ DB_QueryDELETE ("can not remove types of group of a course", - "DELETE FROM crs_grp_types WHERE CrsCod=%ld", + "DELETE FROM crs_grp_types" + " WHERE CrsCod=%ld", CrsCod); /***** Remove users' requests for inscription in the course *****/ DB_QueryDELETE ("can not remove requests for inscription to a course", - "DELETE FROM crs_usr_requests WHERE CrsCod=%ld", + "DELETE FROM crs_usr_requests" + " WHERE CrsCod=%ld", CrsCod); /***** Remove possible users remaining in the course (teachers) *****/ DB_QueryDELETE ("can not remove users from a course", - "DELETE FROM crs_usr_last WHERE CrsCod=%ld", + "DELETE FROM crs_usr_last" + " WHERE CrsCod=%ld", CrsCod); DB_QueryDELETE ("can not remove users from a course", - "DELETE FROM crs_usr WHERE CrsCod=%ld", + "DELETE FROM crs_users" + " WHERE CrsCod=%ld", CrsCod); /***** Remove directories of the course *****/ @@ -2611,7 +2620,7 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role) } else { - if (asprintf (&SubQuery," AND crs_usr.Role=%u",(unsigned) Role) < 0) + if (asprintf (&SubQuery," AND crs_users.Role=%u",(unsigned) Role) < 0) Lay_NotEnoughMemoryExit (); } NumCrss = (unsigned) @@ -2623,15 +2632,15 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role) "crs_courses.Year," // row[4] "crs_courses.FullName," // row[5] "ctr_centers.ShortName," // row[6] - "crs_usr.Accepted" // row[7] - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE crs_usr.UsrCod=%ld%s" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + "crs_users.Accepted" // row[7] + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE crs_users.UsrCod=%ld%s" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" " ORDER BY deg_degrees.FullName," "crs_courses.Year," "crs_courses.FullName", @@ -2781,7 +2790,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA crs_courses.Year row[4] crs_courses.FullName row[5] ctr_centers.ShortName row[6] - crs_usr.Accepted row[7] (only if WriteColumnAccepted == true) + crs_users.Accepted row[7] (only if WriteColumnAccepted == true) */ /***** Get degree code (row[0]) *****/ @@ -2989,9 +2998,11 @@ void Crs_RemoveOldCrss (void) /***** Get old courses from database *****/ NumCrss = DB_QuerySELECT (&mysql_res,"can not get old courses", "SELECT CrsCod" - " FROM crs_last" + " FROM crs_last" " WHERE LastTime DESCRIBE crs_records; "Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT "UNIQUE INDEX(FieldCod,UsrCod))"); - /***** Table crs_usr *****/ + /***** Table crs_users *****/ /* -mysql> DESCRIBE crs_usr; +mysql> DESCRIBE crs_users; +----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+---------+-------+ @@ -852,7 +852,7 @@ mysql> DESCRIBE crs_usr; +----------+---------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) */ - DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr (" + DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_users (" "CrsCod INT NOT NULL," "UsrCod INT NOT NULL," "Role TINYINT NOT NULL DEFAULT 0," diff --git a/swad_degree.c b/swad_degree.c index 80889a06a..3247bcee7 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -1084,12 +1084,12 @@ void Deg_GetListAllDegsWithStds (struct ListDegrees *Degs) "deg_degrees.ShortName," // row[5] "deg_degrees.FullName," // row[6] "deg_degrees.WWW" // row[7] - " FROM deg_degrees," - "crs_courses," - "crs_usr" + " FROM deg_degrees," + "crs_courses," + "crs_users" " WHERE deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" " ORDER BY deg_degrees.ShortName", (unsigned) Rol_STD); @@ -2128,16 +2128,16 @@ unsigned Deg_GetCachedNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery, NumDegsWithUsrs = (unsigned) DB_QueryCOUNT ("can not get number of degrees with users", "SELECT COUNT(DISTINCT deg_degrees.DegCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE %sinstitutions.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", SubQuery,(unsigned) Role); FigCch_UpdateFigureIntoCache (FigureDegs[Role],Scope,Cod, FigCch_UNSIGNED,&NumDegsWithUsrs); diff --git a/swad_department.c b/swad_department.c index 85fd7c5ad..c3bca0975 100644 --- a/swad_department.c +++ b/swad_department.c @@ -348,11 +348,11 @@ static void Dpt_GetListDepartments (struct Dpt_Departments *Departments,long Ins "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[5] " FROM dpt_departments," "usr_data," - "crs_usr" + "crs_users" " WHERE dpt_departments.InsCod=%ld" " AND dpt_departments.DptCod=usr_data.DptCod" - " AND usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role IN (%u,%u)" + " AND usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role IN (%u,%u)" " GROUP BY dpt_departments.DptCod)" " UNION " "(SELECT DptCod," // row[0] @@ -365,9 +365,9 @@ static void Dpt_GetListDepartments (struct Dpt_Departments *Departments,long Ins " WHERE InsCod=%ld" " AND DptCod NOT IN" " (SELECT DISTINCT usr_data.DptCod" - " FROM usr_data,crs_usr" - " WHERE crs_usr.Role IN (%u,%u)" - " AND crs_usr.UsrCod=usr_data.UsrCod))" + " FROM usr_data,crs_users" + " WHERE crs_users.Role IN (%u,%u)" + " AND crs_users.UsrCod=usr_data.UsrCod))" " ORDER BY %s", InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, @@ -448,11 +448,11 @@ void Dpt_GetDataOfDepartmentByCod (struct Dpt_Department *Dpt) "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[4] " FROM dpt_departments," "usr_data," - "crs_usr" + "crs_users" " WHERE dpt_departments.DptCod=%ld" " AND dpt_departments.DptCod=usr_data.DptCod" - " AND usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" + " AND usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" " GROUP BY dpt_departments.DptCod)" " UNION " "(SELECT InsCod," // row[0] @@ -465,9 +465,9 @@ void Dpt_GetDataOfDepartmentByCod (struct Dpt_Department *Dpt) " AND DptCod NOT IN" " (SELECT DISTINCT usr_data.DptCod" " FROM usr_data," - "crs_usr" - " WHERE crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod))", + "crs_users" + " WHERE crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod))", Dpt->DptCod,(unsigned) Rol_TCH, Dpt->DptCod,(unsigned) Rol_TCH); if (NumRows) // Department found... diff --git a/swad_enrolment.c b/swad_enrolment.c index e6e10b781..e5a63d46f 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -248,9 +248,13 @@ void Enr_ModifyRoleInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole) /***** Update the role of a user in a course *****/ DB_QueryUPDATE ("can not modify user's role in course", - "UPDATE crs_usr SET Role=%u" - " WHERE CrsCod=%ld AND UsrCod=%ld", - (unsigned) NewRole,Gbl.Hierarchy.Crs.CrsCod,UsrDat->UsrCod); + "UPDATE crs_users" + " SET Role=%u" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", + (unsigned) NewRole, + Gbl.Hierarchy.Crs.CrsCod, + UsrDat->UsrCod); /***** Flush caches *****/ Usr_FlushCachesUsr (); @@ -291,7 +295,7 @@ void Enr_RegisterUsrInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole, /***** Register user in current course in database *****/ DB_QueryINSERT ("can not register user in course", - "INSERT INTO crs_usr" + "INSERT INTO crs_users" " (CrsCod,UsrCod,Role,Accepted)" " VALUES" " (%ld,%ld,%u,'%c')", @@ -514,8 +518,9 @@ void Enr_GetNotifEnrolment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], if (DB_QuerySELECT (&mysql_res,"can not get user's role" " in course", "SELECT Role" - " FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", CrsCod,UsrCod) == 1) // Result should have a unique row { /***** Get user's role in course *****/ @@ -880,14 +885,16 @@ void Enr_RemoveOldUsrs (void) /***** Get old users from database *****/ NumUsrs = DB_QuerySELECT (&mysql_res,"can not get old users", "SELECT UsrCod FROM" - "(" - "SELECT UsrCod FROM usr_last WHERE" - " LastTime0" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM crs_users," + "crs_usr_requests" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH, @@ -2351,11 +2358,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in all degrees administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] " FROM usr_admins," "crs_courses," "crs_usr_requests" @@ -2372,11 +2379,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in all centers administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] " FROM usr_admins," "deg_degrees," "crs_courses," @@ -2395,11 +2402,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in all institutions administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] " FROM usr_admins," "ctr_centers," "deg_degrees," @@ -2420,11 +2427,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // All requests NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT ReqCod," - "CrsCod," - "UsrCod," - "Role," - "UNIX_TIMESTAMP(RequestTime)" + "SELECT ReqCod," // row[0] + "CrsCod," // row[1] + "UsrCod," // row[2] + "Role," // row[3] + "UNIX_TIMESTAMP(RequestTime)" // row[4] " FROM crs_usr_requests" " WHERE ((1<0" " ORDER BY RequestTime DESC", @@ -2442,26 +2449,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in courses of this country in which I am teacher NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM crs_usr," - "ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // roe[4] + " FROM crs_users," + "ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH, @@ -2472,26 +2479,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in degrees of this country administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, Sco_GetDBStrFromScope (Hie_Lvl_DEG), @@ -2502,26 +2509,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in centers of this country administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, Sco_GetDBStrFromScope (Hie_Lvl_CTR), @@ -2531,28 +2538,27 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) case Rol_INS_ADM: // Requests in institutions of this country administrated by me NumReqs = - DB_QuerySELECT (&mysql_res,"can not get requests" - " for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, Sco_GetDBStrFromScope (Hie_Lvl_INS), @@ -2563,22 +2569,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in any course of this country NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Hierarchy.Cty.CtyCod, RolesSelected); @@ -2595,24 +2601,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in courses of this institution in which I am teacher NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM crs_usr," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM crs_users," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH, @@ -2623,24 +2629,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in degrees of this institution administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, Sco_GetDBStrFromScope (Hie_Lvl_DEG), @@ -2651,24 +2657,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in centers of this institution administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR), Gbl.Hierarchy.Ins.InsCod, @@ -2679,20 +2685,20 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in any course of this institution NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Hierarchy.Ins.InsCod, RolesSelected); @@ -2709,22 +2715,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in courses of this center in which I am teacher NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM crs_usr," - "deg_degrees," - "crs_courses," - "crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM crs_users," + "deg_degrees," + "crs_courses," + "crs_usr_requests" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH, @@ -2735,22 +2741,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in degrees of this center administrated by me NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM usr_admins," - "deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM usr_admins," + "deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE usr_admins.UsrCod=%ld" - " AND usr_admins.Scope='%s'" - " AND usr_admins.Cod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND usr_admins.Scope='%s'" + " AND usr_admins.Cod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, Sco_GetDBStrFromScope (Hie_Lvl_DEG), @@ -2763,18 +2769,18 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Request in any course of this center NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM deg_degrees," - "crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM deg_degrees," + "crs_courses," + "crs_usr_requests" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Hierarchy.Ctr.CtrCod, RolesSelected); @@ -2791,20 +2797,20 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in courses of this degree in which I am teacher NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM crs_usr," - "crs_courses," - "crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM crs_users," + "crs_courses," + "crs_usr_requests" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH, @@ -2818,16 +2824,16 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in any course of this degree NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM crs_courses," - "crs_usr_requests" + "SELECT crs_usr_requests.ReqCod," // row[0] + "crs_usr_requests.CrsCod," // row[1] + "crs_usr_requests.UsrCod," // row[2] + "crs_usr_requests.Role," // row[3] + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4] + " FROM crs_courses," + "crs_usr_requests" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" + " AND crs_courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Hierarchy.Deg.DegCod, RolesSelected); @@ -2848,14 +2854,14 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) // Requests in this course NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests for enrolment", - "SELECT ReqCod," - "CrsCod," - "UsrCod," - "Role," - "UNIX_TIMESTAMP(RequestTime)" - " FROM crs_usr_requests" + "SELECT ReqCod," // row[0] + "CrsCod," // row[1] + "UsrCod," // row[2] + "Role," // row[3] + "UNIX_TIMESTAMP(RequestTime)" // row[4] + " FROM crs_usr_requests" " WHERE CrsCod=%ld" - " AND ((1<0" + " AND ((1<0" " ORDER BY RequestTime DESC", Gbl.Hierarchy.Crs.CrsCod, RolesSelected); @@ -4100,8 +4106,10 @@ void Enr_AcceptUsrInCrs (long UsrCod) { /***** Set enrolment of a user to "accepted" in the current course *****/ DB_QueryUPDATE ("can not confirm user's enrolment", - "UPDATE crs_usr SET Accepted='Y'" - " WHERE CrsCod=%ld AND UsrCod=%ld", + "UPDATE crs_users" + " SET Accepted='Y'" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", Gbl.Hierarchy.Crs.CrsCod,UsrCod); } @@ -4212,11 +4220,13 @@ static void Enr_EffectivelyRemUsrFromCrs (struct UsrData *UsrDat, /***** Remove user from the tables of courses-users *****/ DB_QueryDELETE ("can not remove a user from a course", "DELETE FROM crs_usr_last" - " WHERE UsrCod=%ld AND CrsCod=%ld", + " WHERE UsrCod=%ld" + " AND CrsCod=%ld", UsrDat->UsrCod,Crs->CrsCod); DB_QueryDELETE ("can not remove a user from a course", - "DELETE FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", + "DELETE FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", Crs->CrsCod,UsrDat->UsrCod); /***** Flush caches *****/ diff --git a/swad_figure.c b/swad_figure.c index 57c694088..8a73e58fc 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -890,7 +890,7 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role) NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod); break; case Hie_Lvl_CRS: - sprintf (SubQuery,"crs_usr.CrsCod=%ld AND ",Gbl.Hierarchy.Crs.CrsCod); + sprintf (SubQuery,"crs_users.CrsCod=%ld AND ",Gbl.Hierarchy.Crs.CrsCod); NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod); NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod); NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod); @@ -1304,14 +1304,14 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void) NumInss = (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", "SELECT ctr_centers.InsCod," - "COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "COUNT(DISTINCT crs_users.UsrCod) AS N" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" " GROUP BY InsCod" " ORDER BY N DESC"); break; @@ -1319,17 +1319,17 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void) NumInss = (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", "SELECT ctr_centers.InsCod," - "COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "COUNT(DISTINCT crs_users.UsrCod) AS N" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" " GROUP BY ctr_centers.InsCod" " ORDER BY N DESC", Gbl.Hierarchy.Cty.CtyCod); @@ -1341,15 +1341,15 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void) NumInss = (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", "SELECT ctr_centers.InsCod," - "COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "COUNT(DISTINCT crs_users.UsrCod) AS N" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" " GROUP BY ctr_centers.InsCod" " ORDER BY N DESC", Gbl.Hierarchy.Ins.InsCod); @@ -1956,14 +1956,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "brw_sizes" " WHERE ins_instits.CtyCod=%ld" " AND ins_instits.InsCod=ctr_centers.InsCod" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=brw_sizes.ZoneUsrCod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Cty.CtyCod, (unsigned) FileBrowser); @@ -2123,13 +2123,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, " FROM ctr_centers," "deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "brw_sizes" " WHERE ctr_centers.InsCod=%ld" " AND ctr_centers.CtrCod=deg_degrees.CtrCod" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=brw_sizes.ZoneUsrCod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Ins.InsCod, (unsigned) FileBrowser); @@ -2278,12 +2278,12 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.TotalSize)" // row[6] " FROM deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "brw_sizes" " WHERE deg_degrees.CtrCod=%ld" " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=brw_sizes.ZoneUsrCod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Ctr.CtrCod, (unsigned) FileBrowser); @@ -2421,11 +2421,11 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.NumFiles)," // row[5] "SUM(brw_sizes.TotalSize)" // row[6] " FROM crs_courses," - "crs_usr," + "crs_users," "brw_sizes" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=brw_sizes.ZoneUsrCod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Deg.DegCod, (unsigned) FileBrowser); @@ -2552,10 +2552,10 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.NumFolders)," // row[4] "SUM(brw_sizes.NumFiles)," // row[5] "SUM(brw_sizes.TotalSize)" // row[6] - " FROM crs_usr," + " FROM crs_users," "brw_sizes" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=brw_sizes.ZoneUsrCod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Crs.CrsCod, (unsigned) FileBrowser); @@ -3598,85 +3598,85 @@ static void Fig_GetAndShowTimelineActivityStats (void) case Hie_Lvl_CTY: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod" - " AND tml_notes.NoteType=%u", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod" + " AND tml_notes.NoteType=%u", Gbl.Hierarchy.Cty.CtyCod, (unsigned) NoteType); break; case Hie_Lvl_INS: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod" - " AND tml_notes.NoteType=%u", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod" + " AND tml_notes.NoteType=%u", Gbl.Hierarchy.Ins.InsCod, (unsigned) NoteType); break; case Hie_Lvl_CTR: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod" - " AND tml_notes.NoteType=%u", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod" + " AND tml_notes.NoteType=%u", Gbl.Hierarchy.Ctr.CtrCod, (unsigned) NoteType); break; case Hie_Lvl_DEG: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM crs_courses," + "crs_users," + "tml_notes" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod" - " AND tml_notes.NoteType=%u", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod" + " AND tml_notes.NoteType=%u", Gbl.Hierarchy.Deg.DegCod, (unsigned) NoteType); break; case Hie_Lvl_CRS: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM crs_usr," - "tml_notes" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=tml_notes.UsrCod" - " AND tml_notes.NoteType=%u", + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM crs_users," + "tml_notes" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=tml_notes.UsrCod" + " AND tml_notes.NoteType=%u", Gbl.Hierarchy.Crs.CrsCod, (unsigned) NoteType); break; @@ -3749,76 +3749,76 @@ static void Fig_GetAndShowTimelineActivityStats (void) case Hie_Lvl_CTY: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod", Gbl.Hierarchy.Cty.CtyCod); break; case Hie_Lvl_INS: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod", Gbl.Hierarchy.Ins.InsCod); break; case Hie_Lvl_CTR: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "tml_notes" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod", Gbl.Hierarchy.Ctr.CtrCod); break; case Hie_Lvl_DEG: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM crs_courses," - "crs_usr," - "tml_notes" + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM crs_courses," + "crs_users," + "tml_notes" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=tml_notes.UsrCod", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=tml_notes.UsrCod", Gbl.Hierarchy.Deg.DegCod); break; case Hie_Lvl_CRS: NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", - "SELECT COUNT(DISTINCT tml_notes.NotCod)," - "COUNT(DISTINCT tml_notes.UsrCod)" - " FROM crs_usr," - "tml_notes" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=tml_notes.UsrCod", + "SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0] + "COUNT(DISTINCT tml_notes.UsrCod)" // row[1] + " FROM crs_users," + "tml_notes" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=tml_notes.UsrCod", Gbl.Hierarchy.Crs.CrsCod); break; default: @@ -3952,18 +3952,18 @@ static void Fig_GetAndShowFollowStats (void) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the total number of following/followers", "SELECT COUNT(DISTINCT usr_follow.%s)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s", FieldDB[Fol], Gbl.Hierarchy.Cty.CtyCod, FieldDB[Fol]); @@ -3972,16 +3972,16 @@ static void Fig_GetAndShowFollowStats (void) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the total number of following/followers", "SELECT COUNT(DISTINCT usr_follow.%s)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s", FieldDB[Fol], Gbl.Hierarchy.Ins.InsCod, FieldDB[Fol]); @@ -3992,12 +3992,12 @@ static void Fig_GetAndShowFollowStats (void) "SELECT COUNT(DISTINCT usr_follow.%s)" " FROM deg_degrees," "crs_courses," - "crs_usr," + "crs_users," "usr_follow" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s", FieldDB[Fol], Gbl.Hierarchy.Ctr.CtrCod, FieldDB[Fol]); @@ -4006,12 +4006,12 @@ static void Fig_GetAndShowFollowStats (void) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the total number of following/followers", "SELECT COUNT(DISTINCT usr_follow.%s)" - " FROM crs_courses," - "crs_usr," - "usr_follow" + " FROM crs_courses," + "crs_users," + "usr_follow" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s", FieldDB[Fol], Gbl.Hierarchy.Deg.DegCod, FieldDB[Fol]); @@ -4020,10 +4020,10 @@ static void Fig_GetAndShowFollowStats (void) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the total number of following/followers", "SELECT COUNT(DISTINCT usr_follow.%s)" - " FROM crs_usr," - "usr_follow" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_follow.%s", + " FROM crs_users," + "usr_follow" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_follow.%s", FieldDB[Fol], Gbl.Hierarchy.Crs.CrsCod, FieldDB[Fol]); @@ -4065,31 +4065,31 @@ static void Fig_GetAndShowFollowStats (void) case Hie_Lvl_SYS: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(%s) AS N" - " FROM usr_follow" - " GROUP BY %s) AS F", + " FROM usr_follow" + " GROUP BY %s) AS F", FieldDB[Fol], FieldDB[1 - Fol]); break; case Hie_Lvl_CTY: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" - " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" + " WHERE ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", FieldDB[Fol], Gbl.Hierarchy.Cty.CtyCod, FieldDB[Fol], @@ -4098,19 +4098,19 @@ static void Fig_GetAndShowFollowStats (void) case Hie_Lvl_INS: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" - " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" + " WHERE ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", FieldDB[Fol], Gbl.Hierarchy.Ins.InsCod, FieldDB[Fol], @@ -4119,17 +4119,17 @@ static void Fig_GetAndShowFollowStats (void) case Hie_Lvl_CTR: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" - " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" + " WHERE deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", FieldDB[Fol], Gbl.Hierarchy.Ctr.CtrCod, FieldDB[Fol], @@ -4138,15 +4138,15 @@ static void Fig_GetAndShowFollowStats (void) case Hie_Lvl_DEG: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM crs_courses," - "crs_usr," - "usr_follow" - " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", + " FROM crs_courses," + "crs_users," + "usr_follow" + " WHERE crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", FieldDB[Fol], Gbl.Hierarchy.Deg.DegCod, FieldDB[Fol], @@ -4155,13 +4155,13 @@ static void Fig_GetAndShowFollowStats (void) case Hie_Lvl_CRS: DB_QuerySELECT (&mysql_res,"can not get number of questions" " per survey", - "SELECT AVG(N) FROM " + "SELECT AVG(N) FROM " // row[0] "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM crs_usr," - "usr_follow" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", + " FROM crs_users," + "usr_follow" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", FieldDB[Fol], Gbl.Hierarchy.Crs.CrsCod, FieldDB[Fol], @@ -5807,75 +5807,75 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the number of users who have chosen an option", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND %s", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND %s", Gbl.Hierarchy.Cty.CtyCod,SubQuery); break; case Hie_Lvl_INS: NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the number of users who have chosen an option", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND %s", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND %s", Gbl.Hierarchy.Ins.InsCod,SubQuery); break; case Hie_Lvl_CTR: NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the number of users who have chosen an option", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND %s", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND %s", Gbl.Hierarchy.Ctr.CtrCod,SubQuery); break; case Hie_Lvl_DEG: NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the number of users who have chosen an option", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM crs_courses," - "crs_usr," - "usr_data" + " FROM crs_courses," + "crs_users," + "usr_data" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND %s", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND %s", Gbl.Hierarchy.Deg.DegCod,SubQuery); break; case Hie_Lvl_CRS: NumUsrs = (unsigned) DB_QueryCOUNT ("can not get the number of users who have chosen an option", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM crs_usr," - "usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND %s", + " FROM crs_users," + "usr_data" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND %s", Gbl.Hierarchy.Crs.CrsCod,SubQuery); break; default: diff --git a/swad_file_browser.c b/swad_file_browser.c index 1869d3b06..aef1687c2 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -2681,7 +2681,8 @@ bool Brw_CheckIfExistsFolderAssigmentForAnyUsr (const char *FolderName) /***** Get all the users belonging to current course from database *****/ NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users" " from current course", - "SELECT UsrCod FROM crs_usr" + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld", Gbl.Hierarchy.Crs.CrsCod); @@ -2796,7 +2797,8 @@ bool Brw_UpdateFoldersAssigmentsIfExistForAllUsrs (const char *OldFolderName,con /***** Get all the users belonging to current course from database *****/ NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users" " from current course", - "SELECT UsrCod FROM crs_usr" + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld", Gbl.Hierarchy.Crs.CrsCod); @@ -2915,7 +2917,8 @@ void Brw_RemoveFoldersAssignmentsIfExistForAllUsrs (const char *FolderName) /***** Get all the users belonging to current course from database *****/ NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users" " from current course", - "SELECT UsrCod FROM crs_usr" + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld", Gbl.Hierarchy.Crs.CrsCod); diff --git a/swad_follow.c b/swad_follow.c index 861e17087..f1c2f5a84 100644 --- a/swad_follow.c +++ b/swad_follow.c @@ -321,45 +321,48 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow, "(" "SELECT DISTINCT usr_follow.FollowedCod AS UsrCod" " FROM usr_follow," - "(SELECT FollowedCod FROM usr_follow" - " WHERE FollowerCod=%ld) AS my_followed," - " usr_data" + "(SELECT FollowedCod" + " FROM usr_follow" + " WHERE FollowerCod=%ld) AS my_followed," + " usr_data" " WHERE usr_follow.FollowerCod=my_followed.FollowedCod" - " AND usr_follow.FollowedCod<>%ld" - " AND usr_follow.FollowedCod=usr_data.UsrCod" - " AND usr_data.Surname1<>''" // Surname 1 not empty - " AND usr_data.FirstName<>''" // First name not empty - "%s" // SubQuery1 + " AND usr_follow.FollowedCod<>%ld" + " AND usr_follow.FollowedCod=usr_data.UsrCod" + " AND usr_data.Surname1<>''" // Surname 1 not empty + " AND usr_data.FirstName<>''" // First name not empty + "%s" // SubQuery1 ")" " UNION " // 2. Users who share any course with me "(" - "SELECT DISTINCT crs_usr.UsrCod" - " FROM crs_usr," - "(SELECT CrsCod FROM crs_usr" - " WHERE UsrCod=%ld) AS my_crs," - " usr_data" - " WHERE crs_usr.CrsCod=my_crs.CrsCod" - " AND crs_usr.UsrCod<>%ld" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.Surname1<>''" // Surname 1 not empty - " AND usr_data.FirstName<>''" // First name not empty - "%s" // SubQuery2 + "SELECT DISTINCT crs_users.UsrCod" + " FROM crs_users," + "(SELECT CrsCod" + " FROM crs_users" + " WHERE UsrCod=%ld) AS my_crs," + " usr_data" + " WHERE crs_users.CrsCod=my_crs.CrsCod" + " AND crs_users.UsrCod<>%ld" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.Surname1<>''" // Surname 1 not empty + " AND usr_data.FirstName<>''" // First name not empty + "%s" // SubQuery2 ")" " UNION " // 3. Users who share any course with me with another role "(" - "SELECT DISTINCT crs_usr.UsrCod" - " FROM crs_usr," - "(SELECT CrsCod,Role FROM crs_usr" - " WHERE UsrCod=%ld) AS my_crs_role," - " usr_data" - " WHERE crs_usr.CrsCod=my_crs_role.CrsCod" - " AND crs_usr.Role<>my_crs_role.Role" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.Surname1<>''" // Surname 1 not empty - " AND usr_data.FirstName<>''" // First name not empty - "%s" // SubQuery3 + "SELECT DISTINCT crs_users.UsrCod" + " FROM crs_users," + "(SELECT CrsCod,Role" + " FROM crs_users" + " WHERE UsrCod=%ld) AS my_crs_role," + " usr_data" + " WHERE crs_users.CrsCod=my_crs_role.CrsCod" + " AND crs_users.Role<>my_crs_role.Role" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.Surname1<>''" // Surname 1 not empty + " AND usr_data.FirstName<>''" // First name not empty + "%s" // SubQuery3 ")" ") AS LikelyKnownUsrsToFollow" // Do not select my followed @@ -379,24 +382,26 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow, // with codes >= that random code // that getting all users and then ordering by rand. "SELECT usr_data.UsrCod" - " FROM usr_data," - "(SELECT ROUND(RAND()*(SELECT MAX(UsrCod) FROM usr_data)) AS RandomUsrCod)" // a random user code - " AS random_usr" + " FROM usr_data," + "(SELECT ROUND(RAND()*(SELECT MAX(UsrCod)" + " FROM usr_data)) AS RandomUsrCod) AS random_usr" // a random user code " WHERE usr_data.UsrCod<>%ld" - " AND usr_data.Surname1<>''" // Surname 1 not empty - " AND usr_data.FirstName<>''" // First name not empty + " AND usr_data.Surname1<>''" // Surname 1 not empty + " AND usr_data.FirstName<>''" // First name not empty "%s" // SubQuery4 // Do not select my followed " AND usr_data.UsrCod NOT IN" - " (SELECT FollowedCod FROM usr_follow" - " WHERE FollowerCod=%ld)" + " (SELECT FollowedCod" + " FROM usr_follow" + " WHERE FollowerCod=%ld)" " AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users // Get only MaxUsrsToShow users " LIMIT %lu" ")" ") AS UsrsToFollow" // Get only MaxUsrsToShow users - " ORDER BY RAND() LIMIT %lu", + " ORDER BY RAND()" + " LIMIT %lu", Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod, @@ -1378,20 +1383,20 @@ void Fol_GetAndShowRankingFollowers (void) case Hie_Lvl_CTY: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT usr_follow.FollowedCod," - "COUNT(DISTINCT usr_follow.FollowerCod) AS N" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" + "SELECT usr_follow.FollowedCod," // row[0] + "COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.FollowedCod" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.FollowedCod" " GROUP BY usr_follow.FollowedCod" " ORDER BY N DESC," "usr_follow.FollowedCod" @@ -1401,18 +1406,18 @@ void Fol_GetAndShowRankingFollowers (void) case Hie_Lvl_INS: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT usr_follow.FollowedCod," - "COUNT(DISTINCT usr_follow.FollowerCod) AS N" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" + "SELECT usr_follow.FollowedCod," // row[0] + "COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.FollowedCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.FollowedCod" " GROUP BY usr_follow.FollowedCod" " ORDER BY N DESC," "usr_follow.FollowedCod" @@ -1422,16 +1427,16 @@ void Fol_GetAndShowRankingFollowers (void) case Hie_Lvl_CTR: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT usr_follow.FollowedCod," - "COUNT(DISTINCT usr_follow.FollowerCod) AS N" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_follow" + "SELECT usr_follow.FollowedCod," // row[0] + "COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_follow" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.FollowedCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.FollowedCod" " GROUP BY usr_follow.FollowedCod" " ORDER BY N DESC," "usr_follow.FollowedCod" @@ -1441,14 +1446,14 @@ void Fol_GetAndShowRankingFollowers (void) case Hie_Lvl_DEG: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT usr_follow.FollowedCod," - "COUNT(DISTINCT usr_follow.FollowerCod) AS N" - " FROM crs_courses," - "crs_usr," - "usr_follow" + "SELECT usr_follow.FollowedCod," // row[0] + "COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1] + " FROM crs_courses," + "crs_users," + "usr_follow" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.FollowedCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_follow.FollowedCod" " GROUP BY usr_follow.FollowedCod" " ORDER BY N DESC," "usr_follow.FollowedCod" @@ -1458,12 +1463,12 @@ void Fol_GetAndShowRankingFollowers (void) case Hie_Lvl_CRS: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT usr_follow.FollowedCod," - "COUNT(DISTINCT usr_follow.FollowerCod) AS N" - " FROM crs_usr," - "usr_follow" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_follow.FollowedCod" + "SELECT usr_follow.FollowedCod," // row[0] + "COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1] + " FROM crs_users," + "usr_follow" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_follow.FollowedCod" " GROUP BY usr_follow.FollowedCod" " ORDER BY N DESC," "usr_follow.FollowedCod" diff --git a/swad_group.c b/swad_group.c index b51a62a87..5aa37a129 100644 --- a/swad_group.c +++ b/swad_group.c @@ -977,12 +977,12 @@ static void Grp_LockTables (void) { DB_Query ("can not lock tables to change user's groups", "LOCK TABLES " - "crs_grp_types WRITE," - "crs_grp WRITE," - "crs_grp_usr WRITE," - "crs_usr READ," - "crs_usr_last READ," - "roo_rooms READ"); + "crs_grp_types WRITE," + "crs_grp WRITE," + "crs_grp_usr WRITE," + "crs_users READ," + "crs_usr_last READ," + "roo_rooms READ"); Gbl.DB.LockedTables = true; } @@ -3302,13 +3302,16 @@ unsigned Grp_CountNumUsrsInGrp (Rol_Role_t Role,long GrpCod) return (unsigned) DB_QueryCOUNT ("can not get number of users in a group", "SELECT COUNT(*)" - " FROM crs_grp_usr,crs_grp,crs_grp_types,crs_usr" + " FROM crs_grp_usr," + "crs_grp," + "crs_grp_types," + "crs_users" " WHERE crs_grp_usr.GrpCod=%ld" - " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " AND crs_grp_types.CrsCod=crs_usr.CrsCod" - " AND crs_grp_usr.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u", + " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" + " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND crs_grp_types.CrsCod=crs_users.CrsCod" + " AND crs_grp_usr.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u", GrpCod,(unsigned) Role); } @@ -3321,13 +3324,16 @@ static unsigned long Grp_CountNumUsrsInNoGrpsOfType (Rol_Role_t Role,long GrpTyp /***** Get number of users not belonging to groups of a type ******/ return DB_QueryCOUNT ("can not get the number of users" " not belonging to groups of a type", - "SELECT COUNT(UsrCod) FROM crs_usr" - " WHERE CrsCod=%ld AND Role=%u" - " AND UsrCod NOT IN" - " (SELECT DISTINCT crs_grp_usr.UsrCod" - " FROM crs_grp,crs_grp_usr" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod)", + "SELECT COUNT(UsrCod)" + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND Role=%u" + " AND UsrCod NOT IN" + " (SELECT DISTINCT crs_grp_usr.UsrCod" + " FROM crs_grp," + "crs_grp_usr" + " WHERE crs_grp.GrpTypCod=%ld" + " AND crs_grp.GrpCod=crs_grp_usr.GrpCod)", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Role,GrpTypCod); } @@ -3498,17 +3504,20 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod) "SELECT GrpTypCod FROM" " (" "SELECT crs_grp_types.GrpTypCod AS GrpTypCod," - "COUNT(*) AS NumStudents," - "crs_grp.MaxStudents as MaxStudents" - " FROM crs_grp_types,crs_grp,crs_grp_usr,crs_usr" + "COUNT(*) AS NumStudents," + "crs_grp.MaxStudents as MaxStudents" + " FROM crs_grp_types," + "crs_grp," + "crs_grp_usr," + "crs_users" " WHERE %s" // Which group types? - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.Open='Y'" // Open - " AND crs_grp.MaxStudents>0" // Admits students - " AND crs_grp_types.CrsCod=crs_usr.CrsCod" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" // Student + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.Open='Y'" // Open + " AND crs_grp.MaxStudents>0" // Admits students + " AND crs_grp_types.CrsCod=crs_users.CrsCod" + " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" + " AND crs_grp_usr.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" // Student " GROUP BY crs_grp.GrpCod" " HAVING NumStudents0" // Admits students + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.Open='Y'" // Open + " AND crs_grp.MaxStudents>0" // Admits students // ...without students - " AND crs_grp.GrpCod NOT IN" - " (SELECT crs_grp_usr.GrpCod" - " FROM crs_usr,crs_grp_usr" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" // Student - " AND crs_usr.UsrCod=crs_grp_usr.UsrCod)" + " AND crs_grp.GrpCod NOT IN" + " (SELECT crs_grp_usr.GrpCod" + " FROM crs_users," + "crs_grp_usr" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" // Student + " AND crs_users.UsrCod=crs_grp_usr.UsrCod)" ") AS available_grp_types" // ...to which I don't belong " WHERE GrpTypCod NOT IN" - " (SELECT crs_grp_types.GrpTypCod" - " FROM crs_grp_types,crs_grp,crs_grp_usr" - " WHERE %s" // Which group types? - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.Open='Y'" // Open - " AND crs_grp.MaxStudents>0" // Admits students - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld)", // I belong + " (SELECT crs_grp_types.GrpTypCod" + " FROM crs_grp_types," + "crs_grp," + "crs_grp_usr" + " WHERE %s" // Which group types? + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.Open='Y'" // Open + " AND crs_grp.MaxStudents>0" // Admits students + " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" + " AND crs_grp_usr.UsrCod=%ld)", // I belong SubQueryGrpTypes,(unsigned) Rol_STD, SubQueryGrpTypes, diff --git a/swad_indicator.c b/swad_indicator.c index dfe312178..5c62f1d13 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -355,20 +355,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE deg_degrees.DegTypCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Indicators->DegTypCod, @@ -378,19 +378,19 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", (unsigned) Rol_TCH, @@ -401,26 +401,26 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, if (Indicators->DegTypCod > 0) NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses" " WHERE deg_degrees.DegTypCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Indicators->DegTypCod); else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses" " WHERE deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName"); @@ -431,24 +431,24 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Cty.CtyCod, @@ -457,18 +457,18 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Cty.CtyCod); @@ -478,22 +478,22 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Ins.InsCod, @@ -502,16 +502,16 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM ctr_centers," - "deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM ctr_centers," + "deg_degrees," + "crs_courses" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Ins.InsCod); @@ -521,20 +521,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Ctr.CtrCod, @@ -543,14 +543,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Ctr.CtrCod); @@ -560,20 +560,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE deg_degrees.DegCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Deg.DegCod, @@ -582,14 +582,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses" " WHERE deg_degrees.DegCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Deg.DegCod); @@ -599,21 +599,21 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", "SELECT DISTINCTROW " - "deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_data" + "deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_data" " WHERE crs_courses.CrsCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Crs.CrsCod, @@ -623,14 +623,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators, else NumCrss = (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", - "SELECT deg_degrees.FullName," - "crs_courses.FullName," - "crs_courses.CrsCod," - "crs_courses.InsCrsCod" - " FROM deg_degrees," - "crs_courses" + "SELECT deg_degrees.FullName," // row[0] + "crs_courses.FullName," // row[1] + "crs_courses.CrsCod," // row[2] + "crs_courses.InsCrsCod" // row[3] + " FROM deg_degrees," + "crs_courses" " WHERE crs_courses.CrsCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" " ORDER BY deg_degrees.FullName," "crs_courses.FullName", Gbl.Hierarchy.Crs.CrsCod); diff --git a/swad_institution.c b/swad_institution.c index 72deb3475..ccdb3820a 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -2105,16 +2105,16 @@ unsigned Ins_GetCachedNumInssWithUsrs (Rol_Role_t Role,const char *SubQuery, NumInssWithUsrs = (unsigned) DB_QueryCOUNT ("can not get number of institutions with users", "SELECT COUNT(DISTINCT ins_instits.InsCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE %sinstitutions.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", SubQuery,(unsigned) Role); FigCch_UpdateFigureIntoCache (FigureInss[Role],Scope,Cod, FigCch_UNSIGNED,&NumInssWithUsrs); diff --git a/swad_message.c b/swad_message.c index cb99a78cc..2fd89f0dc 100644 --- a/swad_message.c +++ b/swad_message.c @@ -2185,10 +2185,13 @@ unsigned Msg_GetNumMsgsSentByTchsCrs (long CrsCod) return (unsigned) DB_QueryCOUNT ("can not get the number of messages" " sent by teachers", - "SELECT COUNT(*) FROM msg_snt,crs_usr" + "SELECT COUNT(*)" + " FROM msg_snt," + "crs_users" " WHERE msg_snt.CrsCod=%ld" - " AND crs_usr.CrsCod=%ld AND crs_usr.Role=%u" - " AND msg_snt.UsrCod=crs_usr.UsrCod", + " AND crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND msg_snt.UsrCod=crs_users.UsrCod", CrsCod,CrsCod,(unsigned) Rol_TCH); } diff --git a/swad_network.c b/swad_network.c index 1c913ebae..bbf5d07dc 100644 --- a/swad_network.c +++ b/swad_network.c @@ -457,8 +457,8 @@ void Net_ShowWebAndSocialNetworksStats (void) NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT Web," - "COUNT(*) AS N" + "SELECT Web," // row[0] + "COUNT(*) AS N" // row[1] " FROM usr_webs" " GROUP BY Web" " ORDER BY N DESC,Web"); @@ -467,90 +467,95 @@ void Net_ShowWebAndSocialNetworksStats (void) NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT usr_webs.Web," - "COUNT(DISTINCT usr_webs.UsrCod) AS N" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_webs" + "SELECT usr_webs.Web," // row[0] + "COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_webs" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_webs.UsrCod" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_webs.UsrCod" " GROUP BY usr_webs.Web" - " ORDER BY N DESC,usr_webs.Web", + " ORDER BY N DESC," + "usr_webs.Web", Gbl.Hierarchy.Cty.CtyCod); break; case Hie_Lvl_INS: NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT usr_webs.Web," - "COUNT(DISTINCT usr_webs.UsrCod) AS N" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_webs" + "SELECT usr_webs.Web," // row[0] + "COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_webs" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_webs.UsrCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_webs.UsrCod" " GROUP BY usr_webs.Web" - " ORDER BY N DESC,usr_webs.Web", + " ORDER BY N DESC," + "usr_webs.Web", Gbl.Hierarchy.Ins.InsCod); break; case Hie_Lvl_CTR: NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT usr_webs.Web," - "COUNT(DISTINCT usr_webs.UsrCod) AS N" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_webs" + "SELECT usr_webs.Web," // row[0] + "COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_webs" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_webs.UsrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_webs.UsrCod" " GROUP BY usr_webs.Web" - " ORDER BY N DESC,usr_webs.Web", + " ORDER BY N DESC," + "usr_webs.Web", Gbl.Hierarchy.Ctr.CtrCod); break; case Hie_Lvl_DEG: NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT usr_webs.Web," - "COUNT(DISTINCT usr_webs.UsrCod) AS N" - " FROM crs_courses," - "crs_usr," - "usr_webs" + "SELECT usr_webs.Web," // row[0] + "COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1] + " FROM crs_courses," + "crs_users," + "usr_webs" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_webs.UsrCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_webs.UsrCod" " GROUP BY usr_webs.Web" - " ORDER BY N DESC,usr_webs.Web", + " ORDER BY N DESC," + "usr_webs.Web", Gbl.Hierarchy.Deg.DegCod); break; case Hie_Lvl_CRS: NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users" " with webs / social networks", - "SELECT usr_webs.Web," - "COUNT(DISTINCT usr_webs.UsrCod) AS N" - " FROM crs_usr," - "usr_webs" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_webs.UsrCod" + "SELECT usr_webs.Web," // row[0] + "COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1] + " FROM crs_users," + "usr_webs" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_webs.UsrCod" " GROUP BY usr_webs.Web" - " ORDER BY N DESC,usr_webs.Web", + " ORDER BY N DESC," + "usr_webs.Web", Gbl.Hierarchy.Crs.CrsCod); break; default: diff --git a/swad_notification.c b/swad_notification.c index b71b9e15b..e16fb27a6 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -1219,20 +1219,22 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: // Notify all users in course except me NumRows = DB_QuerySELECT (&mysql_res,"can not get users" - " to be notified", - "SELECT UsrCod FROM crs_usr" + " to be notified", + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld" - " AND UsrCod<>%ld", + " AND UsrCod<>%ld", Gbl.Hierarchy.Crs.CrsCod, Gbl.Usrs.Me.UsrDat.UsrCod); break; case Brw_ADMI_TCH_CRS: // Notify all teachers in course except me NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_usr" + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld" - " AND UsrCod<>%ld" - " AND Role=%u", // Notify teachers only + " AND UsrCod<>%ld" + " AND Role=%u", // Notify teachers only Gbl.Hierarchy.Crs.CrsCod, Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH); @@ -1242,23 +1244,27 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) case Brw_ADMI_MRK_GRP: // Notify all users in group except me NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_grp_usr" + "SELECT UsrCod" // row[0] + " FROM crs_grp_usr" " WHERE crs_grp_usr.GrpCod=%ld" - " AND crs_grp_usr.UsrCod<>%ld", + " AND crs_grp_usr.UsrCod<>%ld", Gbl.Crs.Grps.GrpCod, Gbl.Usrs.Me.UsrDat.UsrCod); break; case Brw_ADMI_TCH_GRP: // Notify all teachers in group except me NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT crs_grp_usr.UsrCod" - " FROM crs_grp_usr,crs_grp,crs_grp_types,crs_usr" + "SELECT crs_grp_usr.UsrCod" // row[0] + " FROM crs_grp_usr," + "crs_grp," + "crs_grp_types," + "crs_users" " WHERE crs_grp_usr.GrpCod=%ld" - " AND crs_grp_usr.UsrCod<>%ld" - " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " AND crs_grp_types.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u", // Notify teachers only + " AND crs_grp_usr.UsrCod<>%ld" + " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" + " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND crs_grp_types.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u", // Notify teachers only Gbl.Crs.Grps.GrpCod, Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH); @@ -1273,16 +1279,16 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) // Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2 NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "(SELECT crs_usr.UsrCod" // row[0] + "(SELECT crs_users.UsrCod" // row[0] " FROM asg_assignments," - "crs_usr" + "crs_users" " WHERE asg_assignments.AsgCod=%ld" " AND asg_assignments.AsgCod NOT IN" " (SELECT AsgCod" " FROM asg_groups" " WHERE AsgCod=%ld)" - " AND asg_assignments.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod<>%ld)" + " AND asg_assignments.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod<>%ld)" " UNION " "(SELECT DISTINCT crs_grp_usr.UsrCod" " FROM asg_groups," @@ -1297,8 +1303,10 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) case Ntf_EVENT_NOTICE: NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod<>%ld", + "SELECT UsrCod" // row[0] + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod<>%ld", Gbl.Hierarchy.Crs.CrsCod, Gbl.Usrs.Me.UsrDat.UsrCod); break; @@ -1312,10 +1320,11 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) // If this course has teachers ==> send notification to teachers NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_usr" + "SELECT UsrCod" // row[0] + " FROM crs_users" " WHERE CrsCod=%ld" - " AND UsrCod<>%ld" - " AND Role=%u", // Notify teachers only + " AND UsrCod<>%ld" + " AND Role=%u", // Notify teachers only Gbl.Hierarchy.Crs.CrsCod, Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Rol_TCH); @@ -1326,12 +1335,13 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) // ==> send notification to administrators or superusers NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM usr_admins" + "SELECT UsrCod" // row[0] + " FROM usr_admins" " WHERE (Scope='%s'" - " OR (Scope='%s' AND Cod=%ld)" - " OR (Scope='%s' AND Cod=%ld)" - " OR (Scope='%s' AND Cod=%ld))" - " AND UsrCod<>%ld", + " OR (Scope='%s' AND Cod=%ld)" + " OR (Scope='%s' AND Cod=%ld)" + " OR (Scope='%s' AND Cod=%ld))" + " AND UsrCod<>%ld", Sco_GetDBStrFromScope (Hie_Lvl_SYS), Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod, Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod, @@ -1342,11 +1352,13 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) // Cod is the code of the social publishing NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT DISTINCT(PublisherCod) FROM tml_pubs" + "SELECT DISTINCT(PublisherCod)" // row[0] + " FROM tml_pubs" " WHERE NotCod=" - "(SELECT NotCod FROM tml_pubs" - " WHERE PubCod=%ld)" - " AND PublisherCod<>%ld", + "(SELECT NotCod" + " FROM tml_pubs" + " WHERE PubCod=%ld)" + " AND PublisherCod<>%ld", Cod,Gbl.Usrs.Me.UsrDat.UsrCod); break; case Ntf_EVENT_TL_FAV: // New favourite to one of my social notes or comments @@ -1364,16 +1376,21 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) case For_FORUM_COURSE_USRS: NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod<>%ld", + "SELECT UsrCod" // row[0] + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod<>%ld", Gbl.Hierarchy.Crs.CrsCod, Gbl.Usrs.Me.UsrDat.UsrCod); break; case For_FORUM_COURSE_TCHS: NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT UsrCod FROM crs_usr" - " WHERE CrsCod=%ld AND Role=%u AND UsrCod<>%ld", + "SELECT UsrCod" // row[0] + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND Role=%u" + " AND UsrCod<>%ld", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Rol_TCH, Gbl.Usrs.Me.UsrDat.UsrCod); @@ -1385,7 +1402,7 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) case Ntf_EVENT_FORUM_REPLY: NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "SELECT DISTINCT(UsrCod)" + "SELECT DISTINCT(UsrCod)" // row[0] " FROM for_posts" " WHERE ThrCod = (SELECT ThrCod" " FROM for_posts" @@ -1401,32 +1418,32 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) // Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2 NumRows = DB_QuerySELECT (&mysql_res,"can not get users" " to be notified", - "(SELECT crs_usr.UsrCod" + "(SELECT crs_users.UsrCod" // row[0] " FROM svy_surveys," - "crs_usr" + "crs_users" " WHERE svy_surveys.SvyCod=%ld" " AND svy_surveys.SvyCod NOT IN" " (SELECT SvyCod" " FROM svy_groups" " WHERE SvyCod=%ld)" " AND svy_surveys.Scope='%s'" - " AND svy_surveys.Cod=crs_usr.CrsCod" - " AND crs_usr.UsrCod<>%ld" - " AND (svy_surveys.Roles&(1<0)" + " AND svy_surveys.Cod=crs_users.CrsCod" + " AND crs_users.UsrCod<>%ld" + " AND (svy_surveys.Roles&(1<0)" " UNION " "(SELECT DISTINCT crs_grp_usr.UsrCod" " FROM svy_groups," "crs_grp_usr," "svy_surveys," - "crs_usr" + "crs_users" " WHERE svy_groups.SvyCod=%ld" " AND svy_groups.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=crs_usr.UsrCod" + " AND crs_grp_usr.UsrCod=crs_users.UsrCod" " AND crs_grp_usr.UsrCod<>%ld" " AND svy_groups.SvyCod=svy_surveys.SvyCod" " AND svy_surveys.Scope='%s'" - " AND svy_surveys.Cod=crs_usr.CrsCod" - " AND (svy_surveys.Roles&(1<0)", + " AND svy_surveys.Cod=crs_users.CrsCod" + " AND (svy_surveys.Roles&(1<0)", Cod, Cod, Sco_GetDBStrFromScope (Hie_Lvl_CRS), diff --git a/swad_photo.c b/swad_photo.c index edf022979..c6e1aaee4 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -1430,15 +1430,16 @@ static long Pho_GetDegWithAvgPhotoLeastRecentlyUpdated (void) /* Get one degree with students not yet computed */ NumRows = DB_QuerySELECT (&mysql_res,"can not get degrees", - "SELECT DISTINCT deg_degrees.DegCod" - " FROM deg_degrees," - "crs_courses," - "crs_usr" + "SELECT DISTINCT deg_degrees.DegCod" // row[0] + " FROM deg_degrees," + "crs_courses," + "crs_users" " WHERE deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND deg_degrees.DegCod NOT IN" - " (SELECT DISTINCT DegCod FROM sta_degrees)" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND deg_degrees.DegCod NOT IN" + " (SELECT DISTINCT DegCod" + " FROM sta_degrees)" " LIMIT 1", (unsigned) Rol_STD); @@ -1462,15 +1463,16 @@ static long Pho_GetDegWithAvgPhotoLeastRecentlyUpdated (void) /* Get degrees from database */ NumRows = DB_QuerySELECT (&mysql_res,"can not get degrees", - "SELECT sta_degrees.DegCod" - " FROM sta_degrees," - "crs_courses," - "crs_usr" + "SELECT sta_degrees.DegCod" // row[0] + " FROM sta_degrees," + "crs_courses," + "crs_users" " WHERE sta_degrees.TimeAvgPhoto0" - " AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY %s DESC," "UsrCod" " LIMIT 100", @@ -1452,22 +1454,24 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," - "usr_figures.%s" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.UsrCod," // row[0] + "usr_figures.%s" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.%s>0" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.%s>0" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY usr_figures.%s DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1479,20 +1483,22 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," - "usr_figures.%s" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.UsrCod," // row[0] + "usr_figures.%s" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.%s>0" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.%s>0" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY usr_figures.%s DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1504,18 +1510,20 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," - "usr_figures.%s" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.UsrCod," // row[0] + "usr_figures.%s" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.%s>0" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.%s>0" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY usr_figures.%s DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1527,16 +1535,18 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," - "usr_figures.%s" - " FROM crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.UsrCod," // row[0] + "usr_figures.%s" // row[1] + " FROM crs_courses," + "crs_users," + "usr_figures" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.%s>0" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.%s>0" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY usr_figures.%s DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1548,14 +1558,16 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," - "usr_figures.%s" - " FROM crs_usr," - "usr_figures" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.%s>0" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + "usr_figures.UsrCod," // row[0] + "usr_figures.%s" // row[1] + " FROM crs_users," + "usr_figures" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.%s>0" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY usr_figures.%s DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1654,13 +1666,15 @@ void Prf_GetAndShowRankingClicksPerDay (void) case Hie_Lvl_SYS: NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", - "SELECT UsrCod," + "SELECT UsrCod," // row[0] "NumClicks/(DATEDIFF(NOW()," - "FirstClickTime)+1) AS NumClicksPerDay" + "FirstClickTime)+1) AS NumClicksPerDay" // row[1] " FROM usr_figures" " WHERE NumClicks>0" " AND FirstClickTime>FROM_UNIXTIME(0)" - " AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY NumClicksPerDay DESC,UsrCod" " LIMIT 100"); break; @@ -1668,24 +1682,26 @@ void Prf_GetAndShowRankingClicksPerDay (void) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," + "usr_figures.UsrCod," // row[0] "usr_figures.NumClicks/(DATEDIFF(NOW()," - "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1] + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.NumClicks>0" - " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.NumClicks>0" + " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY NumClicksPerDay DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1695,22 +1711,24 @@ void Prf_GetAndShowRankingClicksPerDay (void) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," + "usr_figures.UsrCod," // row[0] "usr_figures.NumClicks/(DATEDIFF(NOW()," - "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1] + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.NumClicks>0" - " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.NumClicks>0" + " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY NumClicksPerDay DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1720,20 +1738,22 @@ void Prf_GetAndShowRankingClicksPerDay (void) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," + "usr_figures.UsrCod," // row[0] "usr_figures.NumClicks/(DATEDIFF(NOW()," - "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" - " FROM deg_degrees," - "crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1] + " FROM deg_degrees," + "crs_courses," + "crs_users," + "usr_figures" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.NumClicks>0" - " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.NumClicks>0" + " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY NumClicksPerDay DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1743,18 +1763,20 @@ void Prf_GetAndShowRankingClicksPerDay (void) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," + "usr_figures.UsrCod," // row[0] "usr_figures.NumClicks/(DATEDIFF(NOW()," - "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" - " FROM crs_courses," - "crs_usr," - "usr_figures" + "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1] + " FROM crs_courses," + "crs_users," + "usr_figures" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.NumClicks>0" - " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.NumClicks>0" + " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" + " AND usr_figures.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM usr_banned)" " ORDER BY NumClicksPerDay DESC," "usr_figures.UsrCod" " LIMIT 100", @@ -1764,16 +1786,16 @@ void Prf_GetAndShowRankingClicksPerDay (void) NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking", "SELECT DISTINCTROW " - "usr_figures.UsrCod," + "usr_figures.UsrCod," // row[0] "usr_figures.NumClicks/(DATEDIFF(NOW()," - "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" - " FROM crs_usr," - "usr_figures" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_figures.UsrCod" - " AND usr_figures.NumClicks>0" - " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" - " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" + "usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1] + " FROM crs_users," + "usr_figures" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.UsrCod=usr_figures.UsrCod" + " AND usr_figures.NumClicks>0" + " AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)" + " AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)" " ORDER BY NumClicksPerDay DESC," "usr_figures.UsrCod" " LIMIT 100", diff --git a/swad_report.c b/swad_report.c index 100f5b952..df8c59b9b 100644 --- a/swad_report.c +++ b/swad_report.c @@ -1013,13 +1013,17 @@ static void Rep_GetAndWriteMyCurrentCrss (Rol_Role_t Role, "SELECT my_courses.CrsCod," // row[0] "COUNT(*) AS N" // row[1] " FROM" - " (SELECT CrsCod FROM crs_usr" - " WHERE UsrCod=%ld AND Role=%u) AS my_courses" // It's imperative to use a derived table to not block crs_usr! + " (SELECT CrsCod" + " FROM crs_users" + " WHERE UsrCod=%ld" + " AND Role=%u) AS my_courses" // It's imperative to use a derived table to not block crs_usr! " LEFT JOIN log" " ON (my_courses.CrsCod=log.CrsCod)" - " WHERE log.UsrCod=%ld AND log.Role=%u" + " WHERE log.UsrCod=%ld" + " AND log.Role=%u" " GROUP BY my_courses.CrsCod" - " ORDER BY N DESC,my_courses.CrsCod DESC", + " ORDER BY N DESC," + "my_courses.CrsCod DESC", Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role, Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role); diff --git a/swad_role.c b/swad_role.c index 88e318486..a96865e32 100644 --- a/swad_role.c +++ b/swad_role.c @@ -387,8 +387,10 @@ Rol_Role_t Rol_GetRoleUsrInCrs (long UsrCod,long CrsCod) Gbl.Cache.RoleUsrInCrs.CrsCod = CrsCod; Gbl.Cache.RoleUsrInCrs.Role = Rol_UNK; if (DB_QuerySELECT (&mysql_res,"can not get the role of a user in a course", - "SELECT Role FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", + "SELECT Role" // row[0] + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld", CrsCod,UsrCod) == 1) // User belongs to the course { row = mysql_fetch_row (mysql_res); @@ -419,7 +421,8 @@ void Rol_GetRolesInAllCrssIfNotYetGot (struct UsrData *UsrDat) NumRoles = (unsigned) DB_QuerySELECT (&mysql_res,"can not get the roles of a user" " in all his/her courses", - "SELECT DISTINCT(Role) FROM crs_usr" + "SELECT DISTINCT(Role)" // row[0] + " FROM crs_users" " WHERE UsrCod=%ld", UsrDat->UsrCod); for (NumRole = 0, UsrDat->Roles.InCrss = 0; diff --git a/swad_search.c b/swad_search.c index 866e9a22a..18672d40e 100644 --- a/swad_search.c +++ b/swad_search.c @@ -863,10 +863,10 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery) " (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))" " ENGINE=MEMORY" " SELECT brw_files.FilCod" - " FROM crs_usr," + " FROM crs_users," "brw_files" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=brw_files.Cod" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=brw_files.Cod" " AND brw_files.FileBrowser IN (%u,%u,%u,%u)", Gbl.Usrs.Me.UsrDat.UsrCod, (unsigned) Brw_ADMI_DOC_CRS, @@ -879,7 +879,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery) " (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))" " ENGINE=MEMORY" " SELECT brw_files.FilCod" - " FROM crs_grp_usr,brw_files" + " FROM crs_grp_usr," + "brw_files" " WHERE crs_grp_usr.UsrCod=%ld" " AND crs_grp_usr.GrpCod=brw_files.Cod" " AND brw_files.FileBrowser IN (%u,%u,%u,%u)", diff --git a/swad_timetable.c b/swad_timetable.c index f3b41925c..43b708820 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -724,10 +724,10 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable, "tmt_courses.GrpCod," "tmt_courses.CrsCod" " FROM tmt_courses," - "crs_usr" - " WHERE crs_usr.UsrCod=%ld" + "crs_users" + " WHERE crs_users.UsrCod=%ld" " AND tmt_courses.GrpCod=-1" - " AND tmt_courses.CrsCod=crs_usr.CrsCod" + " AND tmt_courses.CrsCod=crs_users.CrsCod" " UNION DISTINCT " "SELECT tmt_courses.Weekday," "TIME_TO_SEC(tmt_courses.StartTime) AS S," @@ -764,9 +764,9 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable, "tmt_courses.GrpCod," // row[5] "tmt_courses.CrsCod" // row[6] " FROM tmt_courses," - "crs_usr" - " WHERE crs_usr.UsrCod=%ld" - " AND tmt_courses.CrsCod=crs_usr.CrsCod" + "crs_users" + " WHERE crs_users.UsrCod=%ld" + " AND tmt_courses.CrsCod=crs_users.CrsCod" " UNION " "SELECT Weekday," // row[0] "TIME_TO_SEC(StartTime) AS S," @@ -817,10 +817,11 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable, "tmt_courses.ClassType," // row[4] "tmt_courses.GrpCod" // row[5] " FROM tmt_courses," - "crs_usr" + "crs_users" " WHERE tmt_courses.CrsCod=%ld" - " AND tmt_courses.GrpCod=-1 AND crs_usr.UsrCod=%ld" - " AND tmt_courses.CrsCod=crs_usr.CrsCod" + " AND tmt_courses.GrpCod=-1" + " AND crs_users.UsrCod=%ld" + " AND tmt_courses.CrsCod=crs_users.CrsCod" " UNION DISTINCT " "SELECT tmt_courses.Weekday," // row[0] "TIME_TO_SEC(tmt_courses.StartTime) AS S," // row[1] diff --git a/swad_user.c b/swad_user.c index e05c412a1..dd28b5209 100644 --- a/swad_user.c +++ b/swad_user.c @@ -1028,7 +1028,10 @@ unsigned Usr_GetNumCrssOfUsr (long UsrCod) /***** Get the number of courses of a user from database ******/ return (unsigned) DB_QueryCOUNT ("can not get the number of courses of a user", - "SELECT COUNT(*) FROM crs_usr WHERE UsrCod=%ld",UsrCod); + "SELECT COUNT(*)" + " FROM crs_users" + " WHERE UsrCod=%ld", + UsrCod); } /*****************************************************************************/ @@ -1040,8 +1043,10 @@ unsigned Usr_GetNumCrssOfUsrNotAccepted (long UsrCod) /***** Get the number of courses of a user not accepted from database ******/ return (unsigned) DB_QueryCOUNT ("can not get the number of courses of a user", - "SELECT COUNT(*) FROM crs_usr" - " WHERE UsrCod=%ld AND Accepted='N'", + "SELECT COUNT(*)" + " FROM crs_users" + " WHERE UsrCod=%ld" + " AND Accepted='N'", UsrCod); } @@ -1054,7 +1059,10 @@ unsigned Usr_GetNumCrssOfUsrWithARole (long UsrCod,Rol_Role_t Role) /***** Get the number of courses of a user with a role from database ******/ return (unsigned) DB_QueryCOUNT ("can not get the number of courses of a user with a role", - "SELECT COUNT(*) FROM crs_usr WHERE UsrCod=%ld AND Role=%u", + "SELECT COUNT(*)" + " FROM crs_users" + " WHERE UsrCod=%ld" + " AND Role=%u", UsrCod,(unsigned) Role); } @@ -1067,8 +1075,11 @@ unsigned Usr_GetNumCrssOfUsrWithARoleNotAccepted (long UsrCod,Rol_Role_t Role) /***** Get the number of courses of a user with a role from database ******/ return (unsigned) DB_QueryCOUNT ("can not get the number of courses of a user with a role", - "SELECT COUNT(*) FROM crs_usr" - " WHERE UsrCod=%ld AND Role=%u AND Accepted='N'", + "SELECT COUNT(*)" + " FROM crs_users" + " WHERE UsrCod=%ld" + " AND Role=%u" + " AND Accepted='N'", UsrCod,(unsigned) Role); } @@ -1117,8 +1128,9 @@ unsigned Usr_GetNumUsrsInCrssOfAUsr (long UsrCod,Rol_Role_t UsrRole, "CREATE TEMPORARY TABLE IF NOT EXISTS usr_courses_tmp" " (CrsCod INT NOT NULL,UNIQUE INDEX (CrsCod))" " ENGINE=MEMORY" - " SELECT CrsCod FROM crs_usr" - " WHERE UsrCod=%ld" + " SELECT CrsCod" + " FROM crs_users" + " WHERE UsrCod=%ld" "%s", UsrCod,SubQueryRole); @@ -1136,10 +1148,10 @@ unsigned Usr_GetNumUsrsInCrssOfAUsr (long UsrCod,Rol_Role_t UsrRole, } NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM crs_usr,usr_courses_tmp" - " WHERE crs_usr.CrsCod=usr_courses_tmp.CrsCod" - " AND crs_usr.Role IN (%s)", + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM crs_users,usr_courses_tmp" + " WHERE crs_users.CrsCod=usr_courses_tmp.CrsCod" + " AND crs_users.Role IN (%s)", OthersRolesStr); /***** Remove temporary table *****/ @@ -1449,9 +1461,12 @@ bool Usr_CheckIfUsrSharesAnyOfMyCrs (struct UsrData *UsrDat) Gbl.Cache.UsrSharesAnyOfMyCrs.UsrCod = UsrDat->UsrCod; Gbl.Cache.UsrSharesAnyOfMyCrs.SharesAnyOfMyCrs = (DB_QueryCOUNT ("can not check if a user shares any course with you", - "SELECT COUNT(*) FROM crs_usr" + "SELECT COUNT(*)" + " FROM crs_users" " WHERE UsrCod=%ld" - " AND CrsCod IN (SELECT CrsCod FROM my_courses_tmp)", + " AND CrsCod IN" + " (SELECT CrsCod" + " FROM my_courses_tmp)", UsrDat->UsrCod) != 0); return Gbl.Cache.UsrSharesAnyOfMyCrs.SharesAnyOfMyCrs; } @@ -1482,15 +1497,20 @@ bool Usr_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (long UsrCod) "CREATE TEMPORARY TABLE IF NOT EXISTS usr_courses_tmp " "(CrsCod INT NOT NULL,Role TINYINT NOT NULL," "UNIQUE INDEX(CrsCod,Role)) ENGINE=MEMORY" - " SELECT CrsCod,Role FROM crs_usr WHERE UsrCod=%ld", + " SELECT CrsCod," + "Role" + " FROM crs_users" + " WHERE UsrCod=%ld", UsrCod); /* Get if a user shares any course with me from database */ UsrSharesAnyOfMyCrsWithDifferentRole = (DB_QueryCOUNT ("can not check if a user shares any course with you", - "SELECT COUNT(*) FROM my_courses_tmp,usr_courses_tmp" + "SELECT COUNT(*)" + " FROM my_courses_tmp," + "usr_courses_tmp" " WHERE my_courses_tmp.CrsCod=usr_courses_tmp.CrsCod" - " AND my_courses_tmp.Role<>usr_courses_tmp.Role") != 0); + " AND my_courses_tmp.Role<>usr_courses_tmp.Role") != 0); /* Remove temporary table if exists */ DB_Query ("can not remove temporary tables", @@ -1716,17 +1736,17 @@ void Usr_GetMyCourses (void) "Role TINYINT NOT NULL," "DegCod INT NOT NULL," "UNIQUE INDEX(CrsCod,Role,DegCod)) ENGINE=MEMORY" - " SELECT crs_usr.CrsCod," - "crs_usr.Role," + " SELECT crs_users.CrsCod," + "crs_users.Role," "crs_courses.DegCod" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " ORDER BY deg_degrees.ShortName," - "crs_courses.ShortName", + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " ORDER BY deg_degrees.ShortName," + "crs_courses.ShortName", Gbl.Usrs.Me.UsrDat.UsrCod); /***** Get my courses from database *****/ @@ -1880,16 +1900,16 @@ bool Usr_CheckIfUsrBelongsToIns (long UsrCod,long InsCod) Gbl.Cache.UsrBelongsToIns.Belongs = (DB_QueryCOUNT ("can not check if a user belongs to an institution", "SELECT COUNT(DISTINCT ctr_centers.InsCod)" - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Accepted='Y'" // Only if user accepted - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld", + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Accepted='Y'" // Only if user accepted + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld", UsrCod,InsCod) != 0); return Gbl.Cache.UsrBelongsToIns.Belongs; } @@ -1923,15 +1943,16 @@ bool Usr_CheckIfUsrBelongsToCtr (long UsrCod,long CtrCod) Gbl.Cache.UsrBelongsToCtr.Belongs = (DB_QueryCOUNT ("can not check if a user belongs to a center", "SELECT COUNT(DISTINCT deg_degrees.CtrCod)" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Accepted='Y'" // Only if user accepted - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld", - UsrCod,CtrCod) != 0); + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Accepted='Y'" // Only if user accepted + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld", + UsrCod, + CtrCod) != 0); return Gbl.Cache.UsrBelongsToCtr.Belongs; } @@ -1964,12 +1985,12 @@ bool Usr_CheckIfUsrBelongsToDeg (long UsrCod,long DegCod) Gbl.Cache.UsrBelongsToDeg.Belongs = (DB_QueryCOUNT ("can not check if a user belongs to a degree", "SELECT COUNT(DISTINCT crs_courses.DegCod)" - " FROM crs_usr," - "crs_courses" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Accepted='Y'" // Only if user accepted - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld", + " FROM crs_users," + "crs_courses" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.Accepted='Y'" // Only if user accepted + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld", UsrCod,DegCod) != 0); return Gbl.Cache.UsrBelongsToDeg.Belongs; } @@ -2003,15 +2024,17 @@ bool Usr_CheckIfUsrBelongsToCrs (long UsrCod,long CrsCod, return Gbl.Cache.UsrBelongsToCrs.Belongs; /***** 3. Slow check: Get if user belongs to course from database *****/ - SubQuery = (CountOnlyAcceptedCourses ? " AND crs_usr.Accepted='Y'" : // Only if user accepted + SubQuery = (CountOnlyAcceptedCourses ? " AND crs_users.Accepted='Y'" : // Only if user accepted ""); Gbl.Cache.UsrBelongsToCrs.UsrCod = UsrCod; Gbl.Cache.UsrBelongsToCrs.CrsCod = CrsCod; Gbl.Cache.UsrBelongsToCrs.CountOnlyAcceptedCourses = CountOnlyAcceptedCourses; Gbl.Cache.UsrBelongsToCrs.Belongs = (DB_QueryCOUNT ("can not check if a user belongs to a course", - "SELECT COUNT(*) FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld%s", + "SELECT COUNT(*)" + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND UsrCod=%ld%s", CrsCod,UsrCod,SubQuery) != 0); return Gbl.Cache.UsrBelongsToCrs.Belongs; } @@ -2202,19 +2225,19 @@ unsigned Usr_GetCtysFromUsr (long UsrCod,MYSQL_RES **mysql_res) (unsigned) DB_QuerySELECT (mysql_res,"can not get the countries" " a user belongs to", "SELECT cty_countrs.CtyCod," // row[0] - "MAX(crs_usr.Role)" // row[1] - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits," - "cty_countrs" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=cty_countrs.CtyCod" + "MAX(crs_users.Role)" // row[1] + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits," + "cty_countrs" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=cty_countrs.CtyCod" " GROUP BY cty_countrs.CtyCod" " ORDER BY cty_countrs.Name_%s", UsrCod,Lan_STR_LANG_ID[Gbl.Prefs.Language]); @@ -2232,18 +2255,18 @@ unsigned long Usr_GetInssFromUsr (long UsrCod,long CtyCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not get the institutions" " a user belongs to", "SELECT ins_instits.InsCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" " GROUP BY ins_instits.InsCod" " ORDER BY ins_instits.ShortName", UsrCod,CtyCod); @@ -2251,17 +2274,17 @@ unsigned long Usr_GetInssFromUsr (long UsrCod,long CtyCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not get the ins_instits" " a user belongs to", "SELECT ins_instits.InsCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" " GROUP BY ins_instits.InsCod" " ORDER BY ins_instits.ShortName", UsrCod); @@ -2279,16 +2302,16 @@ unsigned long Usr_GetCtrsFromUsr (long UsrCod,long InsCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not check the centers" " a user belongs to", "SELECT ctr_centers.CtrCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" " GROUP BY ctr_centers.CtrCod" " ORDER BY ctr_centers.ShortName", UsrCod,InsCod); @@ -2296,15 +2319,15 @@ unsigned long Usr_GetCtrsFromUsr (long UsrCod,long InsCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not check the centers" " a user belongs to", "SELECT deg_degrees.CtrCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" " GROUP BY ctr_centers.CtrCod" " ORDER BY ctr_centers.ShortName", UsrCod); @@ -2322,14 +2345,14 @@ unsigned long Usr_GetDegsFromUsr (long UsrCod,long CtrCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not check the degrees" " a user belongs to", "SELECT deg_degrees.DegCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" " GROUP BY deg_degrees.DegCod" " ORDER BY deg_degrees.ShortName", UsrCod,CtrCod); @@ -2337,13 +2360,13 @@ unsigned long Usr_GetDegsFromUsr (long UsrCod,long CtrCod,MYSQL_RES **mysql_res) return DB_QuerySELECT (mysql_res,"can not check the degrees" " a user belongs to", "SELECT deg_degrees.DegCod," - "MAX(crs_usr.Role)" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" + "MAX(crs_users.Role)" + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" " GROUP BY deg_degrees.DegCod" " ORDER BY deg_degrees.ShortName", UsrCod); @@ -2360,28 +2383,28 @@ unsigned long Usr_GetCrssFromUsr (long UsrCod,long DegCod,MYSQL_RES **mysql_res) if (DegCod > 0) // Courses in a degree return DB_QuerySELECT (mysql_res,"can not get the courses" " a user belongs to", - "SELECT crs_usr.CrsCod," - "crs_usr.Role," + "SELECT crs_users.CrsCod," + "crs_users.Role," "crs_courses.DegCod" - " FROM crs_usr," - "crs_courses" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld" + " FROM crs_users," + "crs_courses" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld" " ORDER BY crs_courses.ShortName", UsrCod,DegCod); else // All the courses return DB_QuerySELECT (mysql_res,"can not get the courses" " a user belongs to", - "SELECT crs_usr.CrsCod," - "crs_usr.Role," + "SELECT crs_users.CrsCod," + "crs_users.Role," "crs_courses.DegCod" - " FROM crs_usr," - "crs_courses," - "deg_degrees" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" + " FROM crs_users," + "crs_courses," + "deg_degrees" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" " ORDER BY deg_degrees.ShortName," "crs_courses.ShortName", UsrCod); @@ -2406,15 +2429,15 @@ void Usr_GetMainDeg (long UsrCod, // The second table contain only one row with the main degree " (SELECT crs_courses.DegCod AS DegCod," - "MAX(crs_usr.Role) AS MaxRole," + "MAX(crs_users.Role) AS MaxRole," "COUNT(*) AS N" - " FROM crs_usr," - "crs_courses" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " GROUP BY crs_courses.DegCod" - " ORDER BY N DESC" // Ordered by number of courses in which user is enroled - " LIMIT 1)" // We need only the main degree + " FROM crs_users," + "crs_courses" + " WHERE crs_users.UsrCod=%ld" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " GROUP BY crs_courses.DegCod" + " ORDER BY N DESC" // Ordered by number of courses in which user is enroled + " LIMIT 1)" // We need only the main degree " AS main_degree" " WHERE deg_degrees.DegCod=main_degree.DegCod", @@ -4042,10 +4065,14 @@ long Usr_GetRamdomStdFromCrs (long CrsCod) /***** Get a random student from current course from database *****/ if (DB_QuerySELECT (&mysql_res,"can not get a random student" " from the current course", - "SELECT UsrCod FROM crs_usr" - " WHERE CrsCod=%ld AND Role=%u" - " ORDER BY RAND() LIMIT 1", - CrsCod,(unsigned) Rol_STD)) + "SELECT UsrCod" + " FROM crs_users" + " WHERE CrsCod=%ld" + " AND Role=%u" + " ORDER BY RAND()" + " LIMIT 1", + CrsCod, + (unsigned) Rol_STD)) { /***** Get user code *****/ row = mysql_fetch_row (mysql_res); @@ -4071,10 +4098,14 @@ long Usr_GetRamdomStdFromGrp (long GrpCod) /***** Get a random student from a group from database *****/ if (DB_QuerySELECT (&mysql_res,"can not get a random student from a group", - "SELECT crs_grp_usr.UsrCod FROM crs_grp_usr,crs_usr" + "SELECT crs_grp_usr.UsrCod" // row[0] + " FROM crs_grp_usr," + "crs_users" " WHERE crs_grp_usr.GrpCod=%ld" - " AND crs_grp_usr.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u ORDER BY RAND() LIMIT 1", + " AND crs_grp_usr.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" + " ORDER BY RAND()" + " LIMIT 1", GrpCod,(unsigned) Rol_STD)) { /***** Get user code *****/ @@ -4099,19 +4130,19 @@ unsigned Usr_GetNumTchsCurrentInsInDepartment (long DptCod) return (unsigned) DB_QueryCOUNT ("can not get the number of teachers in a department", "SELECT COUNT(DISTINCT usr_data.UsrCod)" - " FROM usr_data," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE usr_data.InsCod=%ld" // User in the current institution... - " AND usr_data.DptCod=%ld" // ...and the specified department... - " AND usr_data.UsrCod=crs_usr.UsrCod" // ...who is... - " AND crs_usr.Role IN (%u,%u)" // ...a teacher... - " AND crs_usr.CrsCod=crs_courses.CrsCod" // ...in a course... - " AND crs_courses.DegCod=deg_degrees.DegCod" // ...of a degree... - " AND deg_degrees.CtrCod=ctr_centers.InsCod" // ...of a center... - " AND ctr_centers.InsCod=%ld", // ...of the current institution + " FROM usr_data," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE usr_data.InsCod=%ld" // User in the current institution... + " AND usr_data.DptCod=%ld" // ...and the specified department... + " AND usr_data.UsrCod=crs_users.UsrCod" // ...who is... + " AND crs_users.Role IN (%u,%u)" // ...a teacher... + " AND crs_users.CrsCod=crs_courses.CrsCod" // ...in a course... + " AND crs_courses.DegCod=deg_degrees.DegCod" // ...of a degree... + " AND deg_degrees.CtrCod=ctr_centers.InsCod" // ...of a center... + " AND ctr_centers.InsCod=%ld", // ...of the current institution Gbl.Hierarchy.Ins.InsCod,DptCod, (unsigned) Rol_NET,(unsigned) Rol_TCH, Gbl.Hierarchy.Ins.InsCod); @@ -4389,8 +4420,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) "usr_data.PhotoVisibility," "usr_data.CtyCod," "usr_data.InsCod," - "crs_usr.Role," - "crs_usr.Accepted"; + "crs_users.Role," + "crs_users.Accepted"; /* row[ 0]: usr_data.UsrCod row[ 1]: usr_data.EncryptedUsrCod @@ -4403,8 +4434,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) row[ 8]: usr_data.PhotoVisibility row[ 9]: usr_data.CtyCod row[10]: usr_data.InsCod - row[11]: crs_usr.Role (only if Scope == Hie_Lvl_CRS) - row[12]: crs_usr.Accepted (only if Scope == Hie_Lvl_CRS) + row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS) + row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS) */ /***** If there are no groups selected, don't do anything *****/ @@ -4422,23 +4453,31 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) /***** Create query for users in the course *****/ if (Gbl.Action.Act == ActReqMsgUsr) // Selecting users to write a message snprintf (*Query,Usr_MAX_BYTES_QUERY_GET_LIST_USRS + 1, - "SELECT %s FROM crs_usr,usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod NOT IN" - " (SELECT ToUsrCod FROM msg_banned WHERE FromUsrCod=%ld)" - " AND crs_usr.UsrCod=usr_data.UsrCod", // Do not get banned users + "SELECT %s" + " FROM crs_users," + "usr_data" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod NOT IN" + " (SELECT ToUsrCod" + " FROM msg_banned" + " WHERE FromUsrCod=%ld)" + " AND crs_users.UsrCod=usr_data.UsrCod", // Do not get banned users QueryFields, - Gbl.Hierarchy.Crs.CrsCod,(unsigned) Role, + Gbl.Hierarchy.Crs.CrsCod, + (unsigned) Role, Gbl.Usrs.Me.UsrDat.UsrCod); else snprintf (*Query,Usr_MAX_BYTES_QUERY_GET_LIST_USRS + 1, - "SELECT %s FROM crs_usr,usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod", + "SELECT %s" + " FROM crs_users," + "usr_data" + " WHERE crs_users.CrsCod=%ld" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod", QueryFields, - Gbl.Hierarchy.Crs.CrsCod,(unsigned) Role); + Gbl.Hierarchy.Crs.CrsCod, + (unsigned) Role); /***** Select users in selected groups *****/ if (!Gbl.Usrs.ClassPhoto.AllGroups) @@ -4479,8 +4518,10 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) /* If there are positive codes, add the students who belong to groups with those codes */ if (NumPositiveCods) { - Str_Concat (*Query," AND (crs_usr.UsrCod IN" - " (SELECT DISTINCT UsrCod FROM crs_grp_usr WHERE", + Str_Concat (*Query," AND (crs_users.UsrCod IN" + " (SELECT DISTINCT UsrCod" + " FROM crs_grp_usr" + " WHERE", Usr_MAX_BYTES_QUERY_GET_LIST_USRS); NumPositiveCods = 0; for (NumGrpSel = 0; @@ -4511,10 +4552,11 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) else Str_Concat (*Query," AND (",Usr_MAX_BYTES_QUERY_GET_LIST_USRS); /* Select all the students of the course who don't belong to any group of type GrpTypCod */ - Str_Concat (*Query,"crs_usr.UsrCod NOT IN" + Str_Concat (*Query,"crs_users.UsrCod NOT IN" " (SELECT DISTINCT crs_grp_usr.UsrCod" - " FROM crs_grp,crs_grp_usr" - " WHERE crs_grp.GrpTypCod='", + " FROM crs_grp," + "crs_grp_usr" + " WHERE crs_grp.GrpTypCod='", Usr_MAX_BYTES_QUERY_GET_LIST_USRS); snprintf (LongStr,sizeof (LongStr),"%ld", Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); @@ -4578,8 +4620,8 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) row[ 8]: usr_data.PhotoVisibility row[ 9]: usr_data.CtyCod row[10]: usr_data.InsCod - row[11]: crs_usr.Role (only if Scope == Hie_Lvl_CRS) - row[12]: crs_usr.Accepted (only if Scope == Hie_Lvl_CRS) + row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS) + row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS) */ /***** Build query *****/ @@ -4589,9 +4631,10 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) /* Get users in courses from the whole platform */ DB_BuildQuery (&Query, "SELECT %s" - " FROM usr_data,crs_usr" - " WHERE usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" + " FROM usr_data," + "crs_users" + " WHERE usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" " ORDER BY usr_data.Surname1," "usr_data.Surname2," "usr_data.FirstName," @@ -4603,19 +4646,19 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) /* Get users in courses from the current country */ DB_BuildQuery (&Query, "SELECT %s" - " FROM usr_data," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits" - " WHERE usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" + " FROM usr_data," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits" + " WHERE usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" " ORDER BY usr_data.Surname1," "usr_data.Surname2," "usr_data.FirstName," @@ -4628,17 +4671,17 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) /* Get users in courses from the current institution */ DB_BuildQuery (&Query, "SELECT %s" - " FROM usr_data," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers" - " WHERE usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" + " FROM usr_data," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers" + " WHERE usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" " ORDER BY usr_data.Surname1," "usr_data.Surname2," "usr_data.FirstName," @@ -4651,15 +4694,15 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) /* Get users in courses from the current center */ DB_BuildQuery (&Query, "SELECT %s" - " FROM usr_data," - "crs_usr," - "crs_courses," - "deg_degrees" - " WHERE usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" + " FROM usr_data," + "crs_users," + "crs_courses," + "deg_degrees" + " WHERE usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" " ORDER BY usr_data.Surname1," "usr_data.Surname2," "usr_data.FirstName," @@ -4672,13 +4715,13 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role) /* Get users in courses from the current degree */ DB_BuildQuery (&Query, "SELECT %s" - " FROM usr_data," - "crs_usr," - "crs_courses" - " WHERE usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld" + " FROM usr_data," + "crs_users," + "crs_courses" + " WHERE usr_data.UsrCod=crs_users.UsrCod" + " AND crs_users.Role=%u" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld" " ORDER BY usr_data.Surname1," "usr_data.Surname2," "usr_data.FirstName," @@ -4735,15 +4778,14 @@ void Usr_SearchListUsrs (Rol_Role_t Role) row[ 8]: usr_data.PhotoVisibility row[ 9]: usr_data.CtyCod row[10]: usr_data.InsCod - row[11]: crs_usr.Role (only if Scope == Hie_Lvl_CRS) - row[12]: crs_usr.Accepted (only if Scope == Hie_Lvl_CRS) + row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS) + row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS) */ const char *OrderQuery = "candidate_users.UsrCod=usr_data.UsrCod" - " ORDER BY " - "usr_data.Surname1," - "usr_data.Surname2," - "usr_data.FirstName," - "usr_data.UsrCod"; + " ORDER BY usr_data.Surname1," + "usr_data.Surname2," + "usr_data.FirstName," + "usr_data.UsrCod"; /***** Build query *****/ // if Gbl.Scope.Current is course ==> 3 columns are retrieved: UsrCod, Sex, Accepted @@ -4766,20 +4808,20 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current country */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND %s", QueryFields, Gbl.Hierarchy.Cty.CtyCod, OrderQuery); @@ -4788,18 +4830,18 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current institution */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" + " AND %s", QueryFields, Gbl.Hierarchy.Ins.InsCod, OrderQuery); @@ -4808,16 +4850,16 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current center */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + " usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" + " AND %s", QueryFields, Gbl.Hierarchy.Ctr.CtrCod, OrderQuery); @@ -4826,14 +4868,14 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current degree */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld" + " AND %s", QueryFields, Gbl.Hierarchy.Deg.DegCod, OrderQuery); @@ -4842,14 +4884,14 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current course */ DB_BuildQuery (&Query, "SELECT %s," - "crs_usr.Role," - "crs_usr.Accepted" - " FROM candidate_users," - "crs_usr," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - " AND crs_usr.CrsCod=%ld" - " AND %s", + "crs_users.Role," + "crs_users.Accepted" + " FROM candidate_users," + "crs_users," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + " AND crs_users.CrsCod=%ld" + " AND %s", QueryFields, Gbl.Hierarchy.Crs.CrsCod, OrderQuery); @@ -4863,10 +4905,12 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users with no courses */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "usr_data" - " WHERE candidate_users.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " AND %s", + " FROM candidate_users," + "usr_data" + " WHERE candidate_users.UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" + " AND %s", QueryFields, OrderQuery); break; @@ -4881,12 +4925,13 @@ void Usr_SearchListUsrs (Rol_Role_t Role) switch (Role) { case Rol_STD: // Student - sprintf (SubQueryRole," AND crs_usr.Role=%u", + sprintf (SubQueryRole," AND crs_users.Role=%u", (unsigned) Rol_STD); break; case Rol_NET: // Non-editing teacher case Rol_TCH: // or teacher - sprintf (SubQueryRole," AND (crs_usr.Role=%u OR crs_usr.Role=%u)", + sprintf (SubQueryRole," AND (crs_users.Role=%u" + " OR crs_users.Role=%u)", (unsigned) Rol_NET,(unsigned) Rol_TCH); break; default: @@ -4899,12 +4944,12 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the whole platform */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND %s", + " FROM candidate_users," + "crs_users," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND %s", QueryFields, SubQueryRole, OrderQuery); @@ -4913,21 +4958,21 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current country */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "ins_instits," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=ins_instits.InsCod" - " AND ins_instits.CtyCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "ins_instits," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=ins_instits.InsCod" + " AND ins_instits.CtyCod=%ld" + " AND %s", QueryFields, SubQueryRole, Gbl.Hierarchy.Cty.CtyCod, @@ -4937,19 +4982,19 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current institution */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "ctr_centers," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=ctr_centers.CtrCod" - " AND ctr_centers.InsCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + "ctr_centers," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=ctr_centers.CtrCod" + " AND ctr_centers.InsCod=%ld" + " AND %s", QueryFields, SubQueryRole, Gbl.Hierarchy.Ins.InsCod, @@ -4959,17 +5004,17 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current center */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "deg_degrees," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=deg_degrees.DegCod" - " AND deg_degrees.CtrCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "deg_degrees," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=deg_degrees.DegCod" + " AND deg_degrees.CtrCod=%ld" + " AND %s", QueryFields, SubQueryRole, Gbl.Hierarchy.Ctr.CtrCod, @@ -4979,15 +5024,15 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current degree */ DB_BuildQuery (&Query, "SELECT %s" - " FROM candidate_users," - "crs_usr," - "crs_courses," - "usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND crs_usr.CrsCod=crs_courses.CrsCod" - " AND crs_courses.DegCod=%ld" - " AND %s", + " FROM candidate_users," + "crs_users," + "crs_courses," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND crs_users.CrsCod=crs_courses.CrsCod" + " AND crs_courses.DegCod=%ld" + " AND %s", QueryFields, SubQueryRole, Gbl.Hierarchy.Deg.DegCod, @@ -4997,13 +5042,15 @@ void Usr_SearchListUsrs (Rol_Role_t Role) /* Search users in courses from the current course */ DB_BuildQuery (&Query, "SELECT %s," - "crs_usr.Role," - "crs_usr.Accepted" - " FROM candidate_users,crs_usr,usr_data" - " WHERE candidate_users.UsrCod=crs_usr.UsrCod" - "%s" - " AND crs_usr.CrsCod=%ld" - " AND %s", + "crs_users.Role," + "crs_users.Accepted" + " FROM candidate_users," + "crs_users," + "usr_data" + " WHERE candidate_users.UsrCod=crs_users.UsrCod" + "%s" + " AND crs_users.CrsCod=%ld" + " AND %s", QueryFields, SubQueryRole, Gbl.Hierarchy.Crs.CrsCod, @@ -5313,36 +5360,60 @@ static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope) { case Hie_Lvl_SYS: DB_BuildQuery (&Query, - "SELECT %s FROM usr_data" - " WHERE UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " ORDER BY Surname1,Surname2,FirstName,UsrCod", + "SELECT %s" + " FROM usr_data" + " WHERE UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" + " ORDER BY Surname1," + "Surname2," + "FirstName," + "UsrCod", QueryFields); break; case Hie_Lvl_CTY: DB_BuildQuery (&Query, - "SELECT %s FROM usr_data" + "SELECT %s" + " FROM usr_data" " WHERE (CtyCod=%ld OR InsCtyCod=%ld)" - " AND UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " ORDER BY Surname1,Surname2,FirstName,UsrCod", + " AND UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" + " ORDER BY Surname1," + "Surname2," + "FirstName," + "UsrCod", QueryFields, Gbl.Hierarchy.Cty.CtyCod, Gbl.Hierarchy.Cty.CtyCod); break; case Hie_Lvl_INS: DB_BuildQuery (&Query, - "SELECT %s FROM usr_data" + "SELECT %s" + " FROM usr_data" " WHERE InsCod=%ld" - " AND UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " ORDER BY Surname1,Surname2,FirstName,UsrCod", + " AND UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" + " ORDER BY Surname1," + "Surname2," + "FirstName," + "UsrCod", QueryFields, Gbl.Hierarchy.Ins.InsCod); break; case Hie_Lvl_CTR: DB_BuildQuery (&Query, - "SELECT %s FROM usr_data" + "SELECT %s" + " FROM usr_data" " WHERE CtrCod=%ld" - " AND UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " ORDER BY Surname1,Surname2,FirstName,UsrCod", + " AND UsrCod NOT IN" + " (SELECT UsrCod" + " FROM crs_users)" + " ORDER BY Surname1," + "Surname2," + "FirstName," + "UsrCod", QueryFields, Gbl.Hierarchy.Ctr.CtrCod); break; @@ -5375,14 +5446,15 @@ void Usr_GetUnorderedStdsCodesInDeg (long DegCod) "usr_data.PhotoVisibility," // row[ 8] "usr_data.CtyCod," // row[ 9] "usr_data.InsCod" // row[10] - " FROM crs_courses," - "crs_usr," - "usr_data" + " FROM crs_courses," + "crs_users," + "usr_data" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod", - DegCod,(unsigned) Rol_STD); + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " AND crs_users.UsrCod=usr_data.UsrCod", + DegCod, + (unsigned) Rol_STD); /***** Get list of students from database *****/ Usr_GetListUsrsFromQuery (Query,Rol_STD,Hie_Lvl_DEG); @@ -5452,8 +5524,8 @@ static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_ row[ 8]: usr_data.PhotoVisibility row[ 9]: usr_data.CtyCod row[10]: usr_data.InsCod - row[11]: crs_usr.Role (only if Scope == Hie_Lvl_CRS) - row[12]: crs_usr.Accepted (only if Scope == Hie_Lvl_CRS) + row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS) + row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS) */ UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr]; @@ -9368,120 +9440,127 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", "SELECT COUNT(DISTINCT UsrCod)" - " FROM crs_usr"); + " FROM crs_users"); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", "SELECT COUNT(DISTINCT UsrCod)" - " FROM crs_usr WHERE Role%s", + " FROM crs_users" + " WHERE Role%s", SubQueryRoles); break; case Hie_Lvl_CTY: if (AnyUserInCourses) // Any user NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod", + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod", Cod); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role%s", - Cod,SubQueryRoles); + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role" + "%s", + Cod, + SubQueryRoles); break; case Hie_Lvl_INS: if (AnyUserInCourses) // Any user NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod", + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod", Cod); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role%s", - Cod,SubQueryRoles); + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role" + "%s", + Cod, + SubQueryRoles); break; case Hie_Lvl_CTR: if (AnyUserInCourses) // Any user NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM deg_degrees," + "crs_courses," + "crs_users" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod", + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod", Cod); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM deg_degrees," - "crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM deg_degrees," + "crs_courses," + "crs_users" " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role%s", - Cod,SubQueryRoles); + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role" + "%s", + Cod, + SubQueryRoles); break; case Hie_Lvl_DEG: if (AnyUserInCourses) // Any user NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM crs_courses," + "crs_users" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod", + " AND crs_courses.CrsCod=crs_users.CrsCod", Cod); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", - "SELECT COUNT(DISTINCT crs_usr.UsrCod)" - " FROM crs_courses," - "crs_usr" + "SELECT COUNT(DISTINCT crs_users.UsrCod)" + " FROM crs_courses," + "crs_users" " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role%s", + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role%s", Cod,SubQueryRoles); break; case Hie_Lvl_CRS: @@ -9489,17 +9568,19 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles) NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", "SELECT COUNT(DISTINCT UsrCod)" - " FROM crs_usr" + " FROM crs_users" " WHERE CrsCod=%ld", Cod); else NumUsrs = (unsigned) DB_QueryCOUNT ("can not get number of users", "SELECT COUNT(DISTINCT UsrCod)" - " FROM crs_usr" + " FROM crs_users" " WHERE CrsCod=%ld" - " AND Role%s", - Cod,SubQueryRoles); + " AND Role" + "%s", + Cod, + SubQueryRoles); break; default: Lay_WrongScopeExit (); @@ -9564,8 +9645,11 @@ unsigned Usr_GetCachedNumUsrsNotBelongingToAnyCrs (void) NumGsts = (unsigned) DB_QueryCOUNT ("can not get number of users" " who do not belong to any course", - "SELECT COUNT(*) FROM usr_data WHERE UsrCod NOT IN" - " (SELECT DISTINCT(UsrCod) FROM crs_usr)"); + "SELECT COUNT(*)" + " FROM usr_data" + " WHERE UsrCod NOT IN" + " (SELECT DISTINCT(UsrCod)" + " FROM crs_users)"); FigCch_UpdateFigureIntoCache (FigCch_NUM_GSTS,Hie_Lvl_SYS,-1L, FigCch_UNSIGNED,&NumGsts); } @@ -9589,135 +9673,136 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro case Hie_Lvl_SYS: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(CrsCod) AS NumCrss" - " FROM crs_usr" - " GROUP BY UsrCod) AS NumCrssTable"); + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(CrsCod) AS NumCrss" + " FROM crs_users" + " GROUP BY UsrCod) AS NumCrssTable"); else DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(CrsCod) AS NumCrss" - " FROM crs_usr" - " WHERE Role=%u GROUP BY UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(CrsCod) AS NumCrss" + " FROM crs_users" + " WHERE Role=%u" + " GROUP BY UsrCod) AS NumCrssTable", (unsigned) Role); break; case Hie_Lvl_CTY: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod, (unsigned) Role); break; case Hie_Lvl_INS: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod, (unsigned) Role); break; case Hie_Lvl_CTR: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM deg_degrees," - "crs_courses," - "crs_usr" - " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM deg_degrees," + "crs_courses," + "crs_users" + " WHERE deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM deg_degrees," - "crs_courses," - "crs_usr" - " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM deg_degrees," + "crs_courses," + "crs_users" + " WHERE deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod, (unsigned) Role); break; case Hie_Lvl_DEG: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM crs_courses," - "crs_usr" - " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM crs_courses," + "crs_users" + " WHERE crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of courses per user", - "SELECT AVG(NumCrss) FROM " - "(SELECT COUNT(crs_usr.CrsCod) AS NumCrss" - " FROM crs_courses," - "crs_usr" - " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.UsrCod) AS NumCrssTable", + "SELECT AVG(NumCrss)" + " FROM (SELECT COUNT(crs_users.CrsCod) AS NumCrss" + " FROM crs_courses," + "crs_users" + " WHERE crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.UsrCod) AS NumCrssTable", Cod, (unsigned) Role); break; @@ -9778,135 +9863,135 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro case Hie_Lvl_SYS: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(UsrCod) AS NumUsrs" - " FROM crs_usr" - " GROUP BY CrsCod) AS NumUsrsTable"); + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(UsrCod) AS NumUsrs" + " FROM crs_users" + " GROUP BY CrsCod) AS NumUsrsTable"); else DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(UsrCod) AS NumUsrs" - " FROM crs_usr" - " WHERE Role=%u GROUP BY CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(UsrCod) AS NumUsrs" + " FROM crs_users" + " WHERE Role=%u GROUP BY CrsCod) AS NumUsrsTable", (unsigned) Role); break; case Hie_Lvl_CTY: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM ins_instits," - "ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ins_instits.CtyCod=%ld" - " AND ins_instits.InsCod=ctr_centers.InsCod" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM ins_instits," + "ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ins_instits.CtyCod=%ld" + " AND ins_instits.InsCod=ctr_centers.InsCod" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod, (unsigned) Role); break; case Hie_Lvl_INS: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM ctr_centers," - "deg_degrees," - "crs_courses," - "crs_usr" - " WHERE ctr_centers.InsCod=%ld" - " AND ctr_centers.CtrCod=deg_degrees.CtrCod" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM ctr_centers," + "deg_degrees," + "crs_courses," + "crs_users" + " WHERE ctr_centers.InsCod=%ld" + " AND ctr_centers.CtrCod=deg_degrees.CtrCod" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod, (unsigned) Role); break; case Hie_Lvl_CTR: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM deg_degrees," - "crs_courses," - "crs_usr" - " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM deg_degrees," + "crs_courses," + "crs_users" + " WHERE deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM deg_degrees," - "crs_courses," - "crs_usr" - " WHERE deg_degrees.CtrCod=%ld" - " AND deg_degrees.DegCod=crs_courses.DegCod" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM deg_degrees," + "crs_courses," + "crs_users" + " WHERE deg_degrees.CtrCod=%ld" + " AND deg_degrees.DegCod=crs_courses.DegCod" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod, (unsigned) Role); break; case Hie_Lvl_DEG: if (Role == Rol_UNK) // Any user DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM crs_courses," - "crs_usr" - " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM crs_courses," + "crs_users" + " WHERE crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod); else DB_QuerySELECT (&mysql_res,"can not get number of users per course", - "SELECT AVG(NumUsrs) FROM " - "(SELECT COUNT(crs_usr.UsrCod) AS NumUsrs" - " FROM crs_courses," - "crs_usr" - " WHERE crs_courses.DegCod=%ld" - " AND crs_courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " GROUP BY crs_usr.CrsCod) AS NumUsrsTable", + "SELECT AVG(NumUsrs)" + " FROM (SELECT COUNT(crs_users.UsrCod) AS NumUsrs" + " FROM crs_courses," + "crs_users" + " WHERE crs_courses.DegCod=%ld" + " AND crs_courses.CrsCod=crs_users.CrsCod" + " AND crs_users.Role=%u" + " GROUP BY crs_users.CrsCod) AS NumUsrsTable", Cod, (unsigned) Role); break;