diff --git a/swad_changelog.h b/swad_changelog.h index 856ddc327..878d44173 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -355,10 +355,11 @@ En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 18.11.2 (2018-10-30)" +#define Log_PLATFORM_VERSION "SWAD 18.11.4 (2018-10-30)" #define CSS_FILE "swad18.4.css" #define JS_FILE "swad17.17.1.js" /* + Version 18.11.4: Oct 30, 2018 Joining building and performing query into one function. (235593 lines) Version 18.11.3: Oct 30, 2018 Joining building and performing query into one function. (235553 lines) Version 18.11.2: Oct 30, 2018 Joining building and performing query into one function. (235531 lines) Version 18.11.1: Oct 30, 2018 Joining building and performing query into one function. (235497 lines) diff --git a/swad_course.c b/swad_course.c index d4f71fe58..919d6c73a 100644 --- a/swad_course.c +++ b/swad_course.c @@ -3124,9 +3124,8 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role) } /*****************************************************************************/ -/****************************** List courses found ***************************/ +/**************************** List courses found *****************************/ /*****************************************************************************/ -// Returns number of courses found void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss) { diff --git a/swad_degree.c b/swad_degree.c index 6db66dfda..12de79973 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -2552,22 +2552,19 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan) } /*****************************************************************************/ -/****************************** List degrees found ***************************/ +/**************************** List degrees found *****************************/ /*****************************************************************************/ -// Returns number of degrees found -unsigned Deg_ListDegsFound (void) +void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs) { extern const char *Txt_degree; extern const char *Txt_degrees; - MYSQL_RES *mysql_res; MYSQL_ROW row; - unsigned NumDegs; unsigned NumDeg; struct Degree Deg; /***** Query database *****/ - if ((NumDegs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get degrees"))) + if (NumDegs) { /***** Start box and table *****/ /* Number of degrees found */ @@ -2587,7 +2584,7 @@ unsigned Deg_ListDegsFound (void) NumDeg++) { /* Get next degree */ - row = mysql_fetch_row (mysql_res); + row = mysql_fetch_row (*mysql_res); /* Get degree code (row[0]) */ Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]); @@ -2604,7 +2601,5 @@ unsigned Deg_ListDegsFound (void) } /***** Free structure that stores the query result *****/ - DB_FreeMySQLResult (&mysql_res); - - return NumDegs; + DB_FreeMySQLResult (mysql_res); } diff --git a/swad_degree.h b/swad_degree.h index 2890d94f4..e2b2272d3 100644 --- a/swad_degree.h +++ b/swad_degree.h @@ -143,6 +143,6 @@ unsigned Deg_GetNumDegsInCtr (long CtrCod); unsigned Deg_GetNumDegsWithCrss (const char *SubQuery); unsigned Deg_GetNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery); -unsigned Deg_ListDegsFound (void); +void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumCrss); #endif diff --git a/swad_department.c b/swad_department.c index ab521eedf..ea20f8af9 100644 --- a/swad_department.c +++ b/swad_department.c @@ -281,27 +281,26 @@ void Dpt_GetListDepartments (long InsCod) sprintf (OrderBySubQuery,"NumTchs DESC,FullName"); break; } - DB_BuildQuery ("(SELECT departments.DptCod,departments.InsCod," - "departments.ShortName,departments.FullName,departments.WWW," - "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" - " FROM departments,usr_data,crs_usr" - " WHERE departments.InsCod=%ld" - " AND departments.DptCod=usr_data.DptCod" - " AND usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role IN (%u,%u)" - " GROUP BY departments.DptCod)" - " UNION " - "(SELECT DptCod,InsCod,ShortName,FullName,WWW,0 AS NumTchs" - " FROM departments" - " 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))" - " ORDER BY %s", - InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, - InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, - OrderBySubQuery); - Gbl.Dpts.Num = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get departments"); - + Gbl.Dpts.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get departments", + "(SELECT departments.DptCod,departments.InsCod," + "departments.ShortName,departments.FullName,departments.WWW," + "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" + " FROM departments,usr_data,crs_usr" + " WHERE departments.InsCod=%ld" + " AND departments.DptCod=usr_data.DptCod" + " AND usr_data.UsrCod=crs_usr.UsrCod" + " AND crs_usr.Role IN (%u,%u)" + " GROUP BY departments.DptCod)" + " UNION " + "(SELECT DptCod,InsCod,ShortName,FullName,WWW,0 AS NumTchs" + " FROM departments" + " 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))" + " ORDER BY %s", + InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, + InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH, + OrderBySubQuery); if (Gbl.Dpts.Num) // Departments found... { /***** Create list with courses in degree *****/ @@ -377,24 +376,23 @@ void Dpt_GetDataOfDepartmentByCod (struct Department *Dpt) else if (Dpt->DptCod > 0) { /***** Get data of a department from database *****/ - DB_BuildQuery ("(SELECT departments.InsCod,departments.ShortName,departments.FullName,departments.WWW," - "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" - " FROM departments,usr_data,crs_usr" - " WHERE departments.DptCod=%ld" - " AND departments.DptCod=usr_data.DptCod" - " AND usr_data.UsrCod=crs_usr.UsrCod" - " AND crs_usr.Role=%u" - " GROUP BY departments.DptCod)" - " UNION " - "(SELECT InsCod,ShortName,FullName,WWW,0" - " FROM departments" - " WHERE DptCod=%ld 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))", - Dpt->DptCod,(unsigned) Rol_TCH, - Dpt->DptCod,(unsigned) Rol_TCH); - NumRows = DB_QuerySELECT_new (&mysql_res,"can not get data of a department"); - + NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a department", + "(SELECT departments.InsCod,departments.ShortName,departments.FullName,departments.WWW," + "COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" + " FROM departments,usr_data,crs_usr" + " WHERE departments.DptCod=%ld" + " AND departments.DptCod=usr_data.DptCod" + " AND usr_data.UsrCod=crs_usr.UsrCod" + " AND crs_usr.Role=%u" + " GROUP BY departments.DptCod)" + " UNION " + "(SELECT InsCod,ShortName,FullName,WWW,0" + " FROM departments" + " WHERE DptCod=%ld 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))", + Dpt->DptCod,(unsigned) Rol_TCH, + Dpt->DptCod,(unsigned) Rol_TCH); if (NumRows) // Department found... { /* Get row */ diff --git a/swad_duplicate.c b/swad_duplicate.c index bdfaa8255..8de9b777b 100644 --- a/swad_duplicate.c +++ b/swad_duplicate.c @@ -145,12 +145,13 @@ void Dup_ListDuplicateUsrs (void) Box_StartBox (NULL,Txt_Possibly_duplicate_users,NULL, Hlp_USERS_Duplicates_possibly_duplicate_users,Box_NOT_CLOSABLE); - /***** Build query *****/ - DB_BuildQuery ("SELECT UsrCod,COUNT(*) AS N,MIN(UNIX_TIMESTAMP(InformTime)) AS T" - " FROM usr_duplicated" - " GROUP BY UsrCod" - " ORDER BY N DESC,T DESC"); - NumUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get possibly duplicate users"); + /***** Make query *****/ + NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get possibly" + " duplicate users", + "SELECT UsrCod,COUNT(*) AS N,MIN(UNIX_TIMESTAMP(InformTime)) AS T" + " FROM usr_duplicated" + " GROUP BY UsrCod" + " ORDER BY N DESC,T DESC"); /***** List possible duplicated users *****/ if (NumUsrs) @@ -266,27 +267,26 @@ static void Dup_ListSimilarUsrs (void) Box_StartBox (NULL,Txt_Similar_users,NULL, Hlp_USERS_Duplicates_similar_users,Box_NOT_CLOSABLE); - /***** Build query *****/ + /***** Make query *****/ if (Gbl.Usrs.Other.UsrDat.Surname1[0] && Gbl.Usrs.Other.UsrDat.FirstName[0]) // Name and surname 1 not empty - { - DB_BuildQuery ("SELECT DISTINCT UsrCod FROM" - "(SELECT DISTINCT UsrCod FROM usr_IDs" - " WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)" - " UNION" - " SELECT UsrCod FROM usr_data" - " WHERE Surname1='%s' AND Surname2='%s' AND FirstName='%s')" - " AS U", - Gbl.Usrs.Other.UsrDat.UsrCod, - Gbl.Usrs.Other.UsrDat.Surname1, - Gbl.Usrs.Other.UsrDat.Surname2, - Gbl.Usrs.Other.UsrDat.FirstName); - } + NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users", + "SELECT DISTINCT UsrCod FROM" + "(SELECT DISTINCT UsrCod FROM usr_IDs" + " WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)" + " UNION" + " SELECT UsrCod FROM usr_data" + " WHERE Surname1='%s' AND Surname2='%s' AND FirstName='%s')" + " AS U", + Gbl.Usrs.Other.UsrDat.UsrCod, + Gbl.Usrs.Other.UsrDat.Surname1, + Gbl.Usrs.Other.UsrDat.Surname2, + Gbl.Usrs.Other.UsrDat.FirstName); else - DB_BuildQuery ("SELECT DISTINCT UsrCod FROM usr_IDs" - " WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)", - Gbl.Usrs.Other.UsrDat.UsrCod); - NumUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get similar users"); + NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users", + "SELECT DISTINCT UsrCod FROM usr_IDs" + " WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)", + Gbl.Usrs.Other.UsrDat.UsrCod); /***** List possible similar users *****/ if (NumUsrs) diff --git a/swad_enrolment.c b/swad_enrolment.c index 6c4549e1f..6e8ab6de3 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -477,12 +477,12 @@ void Enr_GetNotifEnrolment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], // This function may be called inside a web service, so don't report error /***** Get user's role in course from database *****/ - DB_BuildQuery ("SELECT Role" - " FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", - CrsCod,UsrCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get user's role" - " in course") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get user's role" + " in course", + "SELECT Role" + " FROM crs_usr" + " WHERE CrsCod=%ld AND UsrCod=%ld", + CrsCod,UsrCod) == 1) // Result should have a unique row { /***** Get user's role in course *****/ row = mysql_fetch_row (mysql_res); @@ -859,17 +859,18 @@ void Enr_RemoveOldUsrs (void) SecondsWithoutAccess = (time_t) MonthsWithoutAccess * Dat_SECONDS_IN_ONE_MONTH; /***** Get old users from database *****/ - DB_BuildQuery ("SELECT UsrCod FROM" - "(" - "SELECT UsrCod FROM usr_last WHERE" - " LastTime0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) Rol_TCH, - RolesSelected); + 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_usr_requests" + " WHERE crs_usr.UsrCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TCH, + RolesSelected); break; case Rol_DEG_ADM: // Requests in all degrees administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], - RolesSelected); + 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 admin,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], + RolesSelected); break; case Rol_CTR_ADM: // Requests in all centres administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], - RolesSelected); + 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 admin,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], + RolesSelected); break; case Rol_INS_ADM: // Requests in all institutions administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_INS], - RolesSelected); + 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 admin,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_INS], + RolesSelected); break; case Rol_SYS_ADM: // All requests - DB_BuildQuery ("SELECT ReqCod," - "CrsCod," - "UsrCod," - "Role," - "UNIX_TIMESTAMP(RequestTime)" - " FROM crs_usr_requests" - " WHERE ((1<0" - " ORDER BY RequestTime DESC", - RolesSelected); + NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests" + " for enrolment", + "SELECT ReqCod," + "CrsCod," + "UsrCod," + "Role," + "UNIX_TIMESTAMP(RequestTime)" + " FROM crs_usr_requests" + " WHERE ((1<0" + " ORDER BY RequestTime DESC", + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2465,107 +2476,117 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) { case Rol_TCH: // Requests in courses of this country in which I am teacher - DB_BuildQuery ("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,institutions,centres,degrees,courses,crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=courses.CrsCod" - " AND courses.DegCod=degrees.DegCod" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=%ld" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) Rol_TCH, - Gbl.CurrentCty.Cty.CtyCod, - RolesSelected); + 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,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE crs_usr.UsrCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.CrsCod=courses.CrsCod" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=%ld" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TCH, + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); break; case Rol_DEG_ADM: // Requests in degrees of this country administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=degrees.DegCod" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], - Gbl.CurrentCty.Cty.CtyCod, - RolesSelected); + 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 admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); break; case Rol_CTR_ADM: // Requests in centres of this country administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=centres.CtrCod" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], - Gbl.CurrentCty.Cty.CtyCod, - RolesSelected); + 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 admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); break; case Rol_INS_ADM: // Requests in institutions of this country administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=institutions.InsCod" - " AND institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_INS], - Gbl.CurrentCty.Cty.CtyCod, - RolesSelected); + 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 admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=institutions.InsCod" + " AND institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_INS], + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); break; case Rol_SYS_ADM: // Requests in any course of this country - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM institutions,centres,degrees,courses,crs_usr_requests" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.CurrentCty.Cty.CtyCod, - RolesSelected); + 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 institutions,centres,degrees,courses,crs_usr_requests" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2577,83 +2598,91 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) { case Rol_TCH: // Requests in courses of this institution in which I am teacher - DB_BuildQuery ("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,centres,degrees,courses,crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=courses.CrsCod" - " AND courses.DegCod=degrees.DegCod" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=%ld" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) Rol_TCH, - Gbl.CurrentIns.Ins.InsCod, - RolesSelected); + 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,centres,degrees,courses,crs_usr_requests" + " WHERE crs_usr.UsrCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.CrsCod=courses.CrsCod" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=%ld" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TCH, + Gbl.CurrentIns.Ins.InsCod, + RolesSelected); break; case Rol_DEG_ADM: // Requests in degrees of this institution administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=degrees.DegCod" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], - Gbl.CurrentIns.Ins.InsCod, - RolesSelected); + 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 admin,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], + Gbl.CurrentIns.Ins.InsCod, + RolesSelected); break; case Rol_CTR_ADM: // Requests in centres of this institution administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,centres,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=centres.CtrCod" - " AND centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], - Gbl.CurrentIns.Ins.InsCod, - RolesSelected); + 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 admin,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=centres.CtrCod" + " AND centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_CTR], + Gbl.CurrentIns.Ins.InsCod, + RolesSelected); break; case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution case Rol_SYS_ADM: // Requests in any course of this institution - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM centres,degrees,courses,crs_usr_requests" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.CurrentIns.Ins.InsCod, - RolesSelected); + 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 centres,degrees,courses,crs_usr_requests" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.CurrentIns.Ins.InsCod, + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2665,61 +2694,67 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) { case Rol_TCH: // Requests in courses of this centre in which I am teacher - DB_BuildQuery ("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,degrees,courses,crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=courses.CrsCod" - " AND courses.DegCod=degrees.DegCod" - " AND degrees.CtrCod=%ld" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) Rol_TCH, - Gbl.CurrentCtr.Ctr.CtrCod, - RolesSelected); + 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,degrees,courses,crs_usr_requests" + " WHERE crs_usr.UsrCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.CrsCod=courses.CrsCod" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod=%ld" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TCH, + Gbl.CurrentCtr.Ctr.CtrCod, + RolesSelected); break; case Rol_DEG_ADM: // Requests in degrees of this centre administrated by me - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM admin,degrees,courses,crs_usr_requests" - " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" - " AND admin.Cod=degrees.DegCod" - " AND degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], - Gbl.CurrentCtr.Ctr.CtrCod, - RolesSelected); + 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 admin,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod=%ld AND admin.Scope='%s'" + " AND admin.Cod=degrees.DegCod" + " AND degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod,Sco_ScopeDB[Sco_SCOPE_DEG], + Gbl.CurrentCtr.Ctr.CtrCod, + RolesSelected); break; case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this centre case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this centre case Rol_SYS_ADM: // Request in any course of this centre - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM degrees,courses,crs_usr_requests" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.CurrentCtr.Ctr.CtrCod, - RolesSelected); + 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 degrees,courses,crs_usr_requests" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.CurrentCtr.Ctr.CtrCod, + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2731,41 +2766,45 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) { case Rol_TCH: // Requests in courses of this degree in which I am teacher - DB_BuildQuery ("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,courses,crs_usr_requests" - " WHERE crs_usr.UsrCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.CrsCod=courses.CrsCod" - " AND courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) Rol_TCH, - Gbl.CurrentDeg.Deg.DegCod, - RolesSelected); + 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,courses,crs_usr_requests" + " WHERE crs_usr.UsrCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.CrsCod=courses.CrsCod" + " AND courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TCH, + Gbl.CurrentDeg.Deg.DegCod, + RolesSelected); break; case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this degree case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this degree case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this degree case Rol_SYS_ADM: // Requests in any course of this degree - DB_BuildQuery ("SELECT crs_usr_requests.ReqCod," - "crs_usr_requests.CrsCod," - "crs_usr_requests.UsrCod," - "crs_usr_requests.Role," - "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" - " FROM courses,crs_usr_requests" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr_requests.CrsCod" - " AND ((1<0" - " ORDER BY crs_usr_requests.RequestTime DESC", - Gbl.CurrentDeg.Deg.DegCod, - RolesSelected); + 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 courses,crs_usr_requests" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.CurrentDeg.Deg.DegCod, + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2781,14 +2820,16 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this course case Rol_SYS_ADM: // Requests in this course - DB_BuildQuery ("SELECT ReqCod,CrsCod,UsrCod,Role," - "UNIX_TIMESTAMP(RequestTime)" - " FROM crs_usr_requests" - " WHERE CrsCod=%ld" - " AND ((1<0" - " ORDER BY RequestTime DESC", - Gbl.CurrentCrs.Crs.CrsCod, - RolesSelected); + NumReqs = DB_QuerySELECT (&mysql_res,"can not get requests" + " for enrolment", + "SELECT ReqCod,CrsCod,UsrCod,Role," + "UNIX_TIMESTAMP(RequestTime)" + " FROM crs_usr_requests" + " WHERE CrsCod=%ld" + " AND ((1<0" + " ORDER BY RequestTime DESC", + Gbl.CurrentCrs.Crs.CrsCod, + RolesSelected); break; default: Lay_ShowErrorAndExit ("You don't have permission to list requesters."); @@ -2800,10 +2841,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) break; } - NumRequests = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get requests for enrolment"); - /***** List requests *****/ - if (NumRequests) + if (NumReqs) { /* Initialize structure with user's data */ Usr_UsrDataConstructor (&UsrDat); @@ -2837,7 +2876,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) /* List requests */ for (NumReq = 0; - NumReq < NumRequests; + NumReq < NumReqs; NumReq++) { row = mysql_fetch_row (mysql_res); @@ -2871,9 +2910,9 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) /***** Number *****/ fprintf (Gbl.F.Out,"" "" - "%u" + "%lu" "", - NumRequests - NumReq); + NumReqs - NumReq); /***** Link to course *****/ Crs_GetDataOfCourseByCod (&Crs); @@ -2993,10 +3032,10 @@ static void Enr_RemoveEnrolmentRequest (long CrsCod,long UsrCod) /***** Mark possible notifications as removed Important: do this before removing the request *****/ /* Request request code (returns 0 or 1 rows) */ - DB_BuildQuery ("SELECT ReqCod FROM crs_usr_requests" - " WHERE CrsCod=%ld AND UsrCod=%ld", - CrsCod,UsrCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get request code")) // Request exists + if (DB_QuerySELECT (&mysql_res,"can not get request code", + "SELECT ReqCod FROM crs_usr_requests" + " WHERE CrsCod=%ld AND UsrCod=%ld", + CrsCod,UsrCod)) // Request exists { /* Get request code */ row = mysql_fetch_row (mysql_res); diff --git a/swad_search.c b/swad_search.c index cd4cd0a97..166713234 100644 --- a/swad_search.c +++ b/swad_search.c @@ -728,6 +728,8 @@ static unsigned Sch_SearchCentresInDB (const char *RangeQuery) static unsigned Sch_SearchDegreesInDB (const char *RangeQuery) { char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1]; + MYSQL_RES *mysql_res; + unsigned NumDegs; /***** Check scope *****/ if (Gbl.Scope.Current != Sco_SCOPE_CRS) @@ -737,16 +739,18 @@ static unsigned Sch_SearchDegreesInDB (const char *RangeQuery) if (Sch_BuildSearchQuery (SearchQuery,"degrees.FullName",NULL,NULL)) { /***** Query database and list degrees found *****/ - DB_BuildQuery ("SELECT degrees.DegCod" - " FROM degrees,centres,institutions,countries" - " WHERE %s" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=countries.CtyCod" - "%s" - " ORDER BY degrees.FullName,institutions.FullName", - SearchQuery,RangeQuery); - return Deg_ListDegsFound (); + NumDegs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get degrees", + "SELECT degrees.DegCod" + " FROM degrees,centres,institutions,countries" + " WHERE %s" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=countries.CtyCod" + "%s" + " ORDER BY degrees.FullName,institutions.FullName", + SearchQuery,RangeQuery); + Deg_ListDegsFound (&mysql_res,NumDegs); + return NumDegs; } return 0;