Version 18.11.14

This commit is contained in:
Antonio Cañas Vargas 2018-11-01 21:59:42 +01:00
parent 9dd42ee90c
commit a86d7ce36d
6 changed files with 1331 additions and 1112 deletions

View File

@ -160,12 +160,12 @@ static void RSS_WriteNotices (FILE *FileRSS,struct Course *Crs)
char Content[Cns_MAX_BYTES_TEXT + 1];
/***** Get active notices in course *****/
DB_BuildQuery ("SELECT NotCod,UNIX_TIMESTAMP(CreatTime) AS T,UsrCod,Content"
NumNotices = DB_QuerySELECT (&mysql_res,"can not get notices from database",
"SELECT NotCod,UNIX_TIMESTAMP(CreatTime) AS T,UsrCod,Content"
" FROM notices"
" WHERE CrsCod=%ld AND Status=%u"
" ORDER BY T DESC",
Crs->CrsCod,(unsigned) Not_ACTIVE_NOTICE);
NumNotices = DB_QuerySELECT_new (&mysql_res,"can not get notices from database");
/***** Write items with notices *****/
if (NumNotices)
@ -257,14 +257,14 @@ static void RSS_WriteExamAnnouncements (FILE *FileRSS,struct Course *Crs)
if (Gbl.DB.DatabaseIsOpen)
{
/***** Get exam announcements (only future exams) in current course from database *****/
DB_BuildQuery ("SELECT ExaCod,UNIX_TIMESTAMP(CallDate) AS T,"
NumExamAnnouncements = DB_QuerySELECT (&mysql_res,"can not get exam announcements",
"SELECT ExaCod,UNIX_TIMESTAMP(CallDate) AS T,"
"DATE_FORMAT(ExamDate,'%%d/%%m/%%Y %%H:%%i')"
" FROM exam_announcements"
" WHERE CrsCod=%ld AND Status=%u AND ExamDate>=NOW()"
" ORDER BY T",
Gbl.CurrentCrs.Crs.CrsCod,
(unsigned) Exa_VISIBLE_EXAM_ANNOUNCEMENT);
NumExamAnnouncements = DB_QuerySELECT_new (&mysql_res,"can not get exam announcements");
/***** Write items with notices *****/
if (NumExamAnnouncements)

View File

@ -355,10 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.11.13 (2018-11-01)"
#define Log_PLATFORM_VERSION "SWAD 18.11.14 (2018-11-01)"
#define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.11.14: Nov 01, 2018 Joining building and performing query into one function. (236211 lines)
Version 18.11.13: Nov 01, 2018 Joining building and performing query into one function. (236011 lines)
Version 18.11.12: Nov 01, 2018 Joining building and performing query into one function. (235965 lines)
Version 18.11.11: Nov 01, 2018 Joining building and performing query into one function. (235896 lines)

View File

@ -353,10 +353,10 @@ Rol_Role_t Rol_GetRoleUsrInCrs (long UsrCod,long CrsCod)
Gbl.Cache.RoleUsrInCrs.UsrCod = UsrCod;
Gbl.Cache.RoleUsrInCrs.CrsCod = CrsCod;
Gbl.Cache.RoleUsrInCrs.Role = Rol_UNK;
DB_BuildQuery ("SELECT Role FROM crs_usr"
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",
CrsCod,UsrCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get the role of a user in a course") == 1) // User belongs to the course
CrsCod,UsrCod) == 1) // User belongs to the course
{
row = mysql_fetch_row (mysql_res);
Gbl.Cache.RoleUsrInCrs.Role = Rol_ConvertUnsignedStrToRole (row[0]);
@ -383,11 +383,12 @@ void Rol_GetRolesInAllCrssIfNotYetGot (struct UsrData *UsrDat)
if (UsrDat->Roles.InCrss < 0) // Not yet filled
{
/***** Get distinct roles in all courses of the user from database *****/
DB_BuildQuery ("SELECT DISTINCT(Role) FROM crs_usr WHERE UsrCod=%ld",
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"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
NumRoles = (unsigned) DB_QuerySELECT_new (&mysql_res,
"can not get the roles of a user"
" in all his/her courses");
for (NumRole = 0, UsrDat->Roles.InCrss = 0;
NumRole < NumRoles;
NumRole++)
@ -588,10 +589,10 @@ Rol_Role_t Rol_GetRequestedRole (long UsrCod)
Rol_Role_t Role = Rol_UNK;
/***** Get requested role from database *****/
DB_BuildQuery ("SELECT Role FROM crs_usr_requests"
if (DB_QuerySELECT (&mysql_res,"can not get requested role",
"SELECT Role FROM crs_usr_requests"
" WHERE CrsCod=%ld AND UsrCod=%ld",
Gbl.CurrentCrs.Crs.CrsCod,UsrCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get requested role"))
Gbl.CurrentCrs.Crs.CrsCod,UsrCod))
{
/***** Get role *****/
row = mysql_fetch_row (mysql_res);

View File

@ -257,15 +257,21 @@ bool Ses_GetSessionData (void)
unsigned UnsignedNum;
bool Result = false;
/***** Query data of session from database *****/
DB_BuildQuery ("SELECT UsrCod,Password,Role,"
"CtyCod,InsCod,CtrCod,DegCod,CrsCod,"
"WhatToSearch,SearchStr"
" FROM sessions WHERE SessionId='%s'",
Gbl.Session.Id);
/***** Check if the session existed in the database *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get data of session"))
if (DB_QuerySELECT (&mysql_res,"can not get data of session",
"SELECT UsrCod," // row[0]
"Password," // row[1]
"Role," // row[2]
"CtyCod," // row[3]
"InsCod," // row[4]
"CtrCod," // row[5]
"DegCod," // row[6]
"CrsCod," // row[7]
"WhatToSearch," // row[8]
"SearchStr" // row[9]
" FROM sessions"
" WHERE SessionId='%s'",
Gbl.Session.Id))
{
row = mysql_fetch_row (mysql_res);
@ -414,10 +420,15 @@ unsigned Ses_GetHiddenParFromDB (Act_Action_t NextAction,
if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB
{
/***** Get a hidden parameter from database *****/
DB_BuildQuery ("SELECT ParamValue FROM hidden_params"
" WHERE SessionId='%s' AND Action=%ld AND ParamName='%s'",
Gbl.Session.Id,Act_GetActCod (NextAction),ParamName);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get a hidden parameter");
NumRows = DB_QuerySELECT (&mysql_res,"can not get a hidden parameter",
"SELECT ParamValue"
" FROM hidden_params"
" WHERE SessionId='%s'"
" AND Action=%ld"
" AND ParamName='%s'",
Gbl.Session.Id,
Act_GetActCod (NextAction),
ParamName);
/***** Check if the parameter is found in database *****/
if (NumRows)

View File

@ -251,7 +251,8 @@ static unsigned Soc_GetNumTimesACommHasBeenFav (struct SocialComment *SocCom);
static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot);
static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *SocNot);
static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment *SocCom);
static void Soc_ShowSharersOrFavers (unsigned NumUsrs);
static void Soc_ShowSharersOrFavers (MYSQL_RES **mysql_res,
unsigned NumUsrs,unsigned NumFirstUsrs);
static void Soc_GetDataOfSocialNotByCod (struct SocialNote *SocNot);
static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom);
@ -517,6 +518,7 @@ static void Soc_BuildQueryToGetTimeline (char **Query,
} RangePubsToGet;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumPubs;
unsigned NumPub;
long PubCod;
long NotCod;
@ -726,7 +728,9 @@ static void Soc_BuildQueryToGetTimeline (char **Query,
switch (TimelineUsrOrGbl)
{
case Soc_TIMELINE_USR: // Show the timeline of a user
DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs"
NumPubs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing",
"SELECT PubCod,NotCod FROM social_pubs"
" WHERE %s%s%s%s"
" ORDER BY PubCod DESC LIMIT 1",
SubQueryRangeBottom,SubQueryRangeTop,
@ -737,7 +741,9 @@ static void Soc_BuildQueryToGetTimeline (char **Query,
switch (Gbl.Social.WhichUsrs)
{
case Soc_FOLLOWED: // Show the timeline of the users I follow
DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs,publishers"
NumPubs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing",
"SELECT PubCod,NotCod FROM social_pubs,publishers"
" WHERE %s%s%s%s"
" ORDER BY social_pubs.PubCod DESC LIMIT 1",
SubQueryRangeBottom,SubQueryRangeTop,
@ -745,7 +751,9 @@ static void Soc_BuildQueryToGetTimeline (char **Query,
SubQueryAlreadyExists);
break;
case Soc_ALL_USRS: // Show the timeline of all users
DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs"
NumPubs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing",
"SELECT PubCod,NotCod FROM social_pubs"
" WHERE %s%s%s"
" ORDER BY PubCod DESC LIMIT 1",
SubQueryRangeBottom,SubQueryRangeTop,
@ -754,7 +762,8 @@ static void Soc_BuildQueryToGetTimeline (char **Query,
}
break;
}
if (DB_QuerySELECT_new (&mysql_res,"can not get publishing") == 1)
if (NumPubs == 1)
{
/* Get code of social publishing */
row = mysql_fetch_row (mysql_res);
@ -813,9 +822,9 @@ static long Soc_GetPubCodFromSession (const char *FieldName)
long PubCod;
/***** Get last publishing code from database *****/
DB_BuildQuery ("SELECT %s FROM sessions WHERE SessionId='%s'",
FieldName,Gbl.Session.Id);
if (DB_QuerySELECT_new (&mysql_res,"can not get publishing code from session") != 1)
if (DB_QuerySELECT (&mysql_res,"can not get publishing code from session",
"SELECT %s FROM sessions WHERE SessionId='%s'",
FieldName,Gbl.Session.Id) != 1)
Lay_ShowErrorAndExit ("Error when getting publishing code from session.");
/***** Get last publishing code *****/
@ -1644,10 +1653,11 @@ static void Soc_GetAndWriteSocialPost (long PstCod)
Img_ImageConstructor (&Image);
/***** Get social post from database *****/
DB_BuildQuery ("SELECT Content,ImageName,ImageTitle,ImageURL"
NumRows = DB_QuerySELECT (&mysql_res,"can not get the content"
" of a social post",
"SELECT Content,ImageName,ImageTitle,ImageURL"
" FROM social_posts WHERE PstCod=%ld",
PstCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get the content of a social post");
/***** Result should have a unique row *****/
if (NumRows == 1)
@ -2428,20 +2438,22 @@ static void Soc_WriteCommentsInSocialNote (const struct SocialNote *SocNot)
struct SocialComment SocCom;
/***** Get comments of this social note from database *****/
DB_BuildQuery ("SELECT social_pubs.PubCod,social_pubs.PublisherCod,"
"social_pubs.NotCod,"
"UNIX_TIMESTAMP(social_pubs.TimePublish),"
"social_comments.Content,"
"social_comments.ImageName,"
"social_comments.ImageTitle,"
"social_comments.ImageURL"
NumComments = DB_QuerySELECT (&mysql_res,"can not get social comments",
"SELECT social_pubs.PubCod," // row[0]
"social_pubs.PublisherCod," // row[1]
"social_pubs.NotCod," // row[2]
"UNIX_TIMESTAMP("
"social_pubs.TimePublish)," // row[3]
"social_comments.Content," // row[4]
"social_comments.ImageName," // row[5]
"social_comments.ImageTitle," // row[6]
"social_comments.ImageURL" // row[7]
" FROM social_pubs,social_comments"
" WHERE social_pubs.NotCod=%ld"
" AND social_pubs.PubType=%u"
" AND social_pubs.PubCod=social_comments.PubCod"
" ORDER BY social_pubs.PubCod",
SocNot->NotCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE);
NumComments = DB_QuerySELECT_new (&mysql_res,"can not get social comments");
/***** List comments *****/
if (NumComments) // Comments to this social note found
@ -3732,9 +3744,9 @@ static void Soc_RemoveImgFileFromSocialPost (long PstCod)
MYSQL_ROW row;
/***** Get name of image associated to a social post from database *****/
DB_BuildQuery ("SELECT ImageName FROM social_posts WHERE PstCod=%ld",
PstCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get image"))
if (DB_QuerySELECT (&mysql_res,"can not get image",
"SELECT ImageName FROM social_posts WHERE PstCod=%ld",
PstCod))
{
/***** Get image name (row[0]) *****/
row = mysql_fetch_row (mysql_res);
@ -3772,10 +3784,11 @@ static void Soc_RemoveASocialNoteFromDB (struct SocialNote *SocNot)
}
/* Get comments of this social note */
DB_BuildQuery ("SELECT PubCod FROM social_pubs"
NumComments = DB_QuerySELECT (&mysql_res,"can not get social comments",
"SELECT PubCod FROM social_pubs"
" WHERE NotCod=%ld AND PubType=%u",
SocNot->NotCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE);
NumComments = DB_QuerySELECT_new (&mysql_res,"can not get social comments");
SocNot->NotCod,
(unsigned) Soc_PUB_COMMENT_TO_NOTE);
/* For each comment... */
for (NumCom = 0;
@ -3857,9 +3870,9 @@ static long Soc_GetNotCodOfSocialPublishing (long PubCod)
long NotCod = -1L;
/***** Get code of social note from database *****/
DB_BuildQuery ("SELECT NotCod FROM social_pubs WHERE PubCod=%ld",
PubCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get code of social note") == 1) // Result should have a unique row
if (DB_QuerySELECT (&mysql_res,"can not get code of social note",
"SELECT NotCod FROM social_pubs WHERE PubCod=%ld",
PubCod) == 1) // Result should have a unique row
{
/* Get code of social note */
row = mysql_fetch_row (mysql_res);
@ -3883,10 +3896,10 @@ static long Soc_GetPubCodOfOriginalSocialNote (long NotCod)
long OriginalPubCod = -1L;
/***** Get code of social publishing of the original note *****/
DB_BuildQuery ("SELECT PubCod FROM social_pubs"
if (DB_QuerySELECT (&mysql_res,"can not get code of social publishing",
"SELECT PubCod FROM social_pubs"
" WHERE NotCod=%ld AND PubType=%u",
NotCod,(unsigned) Soc_PUB_ORIGINAL_NOTE);
if (DB_QuerySELECT_new (&mysql_res,"can not get code of social publishing") == 1) // Result should have a unique row
NotCod,(unsigned) Soc_PUB_ORIGINAL_NOTE) == 1) // Result should have a unique row
{
/* Get code of social publishing (row[0]) */
row = mysql_fetch_row (mysql_res);
@ -4074,9 +4087,10 @@ static void Soc_RemoveImgFileFromSocialComment (long PubCod)
MYSQL_ROW row;
/***** Get name of image associated to a social post from database *****/
DB_BuildQuery ("SELECT ImageName FROM social_comments WHERE PubCod=%ld",
PubCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get image"))
if (DB_QuerySELECT (&mysql_res,"can not get image",
"SELECT ImageName FROM social_comments"
" WHERE PubCod=%ld",
PubCod))
{
/***** Get image name (row[0]) *****/
row = mysql_fetch_row (mysql_res);
@ -4313,9 +4327,14 @@ static unsigned Soc_GetNumTimesACommHasBeenFav (struct SocialComment *SocCom)
static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot)
{
MYSQL_RES *mysql_res;
unsigned NumFirstUsrs = 0;
/***** Get users who have shared this note *****/
if (SocNot->NumShared)
DB_BuildQuery ("SELECT PublisherCod FROM social_pubs"
NumFirstUsrs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get users",
"SELECT PublisherCod FROM social_pubs"
" WHERE NotCod=%ld"
" AND PublisherCod<>%ld"
" AND PubType=%u"
@ -4324,7 +4343,13 @@ static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot
SocNot->UsrCod,
(unsigned) Soc_PUB_SHARED_NOTE,
Soc_MAX_SHARERS_FAVERS_SHOWN);
Soc_ShowSharersOrFavers (SocNot->NumShared);
/***** Show users *****/
Soc_ShowSharersOrFavers (&mysql_res,SocNot->NumShared,NumFirstUsrs);
/***** Free structure that stores the query result *****/
if (SocNot->NumShared)
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/
@ -4333,16 +4358,28 @@ static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot
static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *SocNot)
{
MYSQL_RES *mysql_res;
unsigned NumFirstUsrs = 0;
/***** Get users who have marked this note as favourite *****/
if (SocNot->NumFavs)
DB_BuildQuery ("SELECT UsrCod FROM social_notes_fav"
/***** Get list of users from database *****/
NumFirstUsrs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get users",
"SELECT UsrCod FROM social_notes_fav"
" WHERE NotCod=%ld"
" AND UsrCod<>%ld" // Extra check
" ORDER BY FavCod LIMIT %u",
SocNot->NotCod,
SocNot->UsrCod,
Soc_MAX_SHARERS_FAVERS_SHOWN);
Soc_ShowSharersOrFavers (SocNot->NumFavs);
/***** Show users *****/
Soc_ShowSharersOrFavers (&mysql_res,SocNot->NumFavs,NumFirstUsrs);
/***** Free structure that stores the query result *****/
if (SocNot->NumFavs)
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/
@ -4351,16 +4388,28 @@ static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *S
static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment *SocCom)
{
MYSQL_RES *mysql_res;
unsigned NumFirstUsrs = 0;
/***** Get users who have marked this comment as favourite *****/
if (SocCom->NumFavs)
DB_BuildQuery ("SELECT UsrCod FROM social_comments_fav"
/***** Get list of users from database *****/
NumFirstUsrs =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get users",
"SELECT UsrCod FROM social_comments_fav"
" WHERE PubCod=%ld"
" AND UsrCod<>%ld" // Extra check
" ORDER BY FavCod LIMIT %u",
SocCom->PubCod,
SocCom->UsrCod,
Soc_MAX_SHARERS_FAVERS_SHOWN);
Soc_ShowSharersOrFavers (SocCom->NumFavs);
/***** Show users *****/
Soc_ShowSharersOrFavers (&mysql_res,SocCom->NumFavs,NumFirstUsrs);
/***** Free structure that stores the query result *****/
if (SocCom->NumFavs)
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/
@ -4368,11 +4417,10 @@ static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment
/*****************************************************************************/
// All forms in this function and nested functions must have unique identifiers
static void Soc_ShowSharersOrFavers (unsigned NumUsrs)
static void Soc_ShowSharersOrFavers (MYSQL_RES **mysql_res,
unsigned NumUsrs,unsigned NumFirstUsrs)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumFirstUsrs;
unsigned NumUsr;
unsigned NumUsrsShown = 0;
struct UsrData UsrDat;
@ -4385,8 +4433,7 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs)
if (NumUsrs)
{
/***** Get list of users from database *****/
NumFirstUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get users");
/***** A list of users has been got from database *****/
if (NumFirstUsrs)
{
/***** Initialize structure with user's data *****/
@ -4398,7 +4445,7 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs)
NumUsr++)
{
/***** Get user *****/
row = mysql_fetch_row (mysql_res);
row = mysql_fetch_row (*mysql_res);
/* Get user's code (row[0]) */
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
@ -4421,9 +4468,6 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs)
Usr_UsrDataDestructor (&UsrDat);
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
if (NumUsrs > NumUsrsShown)
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_SHARER\">"
"<img src=\"%s/ellipsis32x32.gif\""
@ -4448,11 +4492,17 @@ static void Soc_GetDataOfSocialNotByCod (struct SocialNote *SocNot)
if (SocNot->NotCod > 0)
{
/***** Get data of social note from database *****/
DB_BuildQuery ("SELECT NotCod,NoteType,Cod,UsrCod,HieCod,Unavailable,UNIX_TIMESTAMP(TimeNote)"
if (DB_QuerySELECT (&mysql_res,"can not get data of social note",
"SELECT NotCod," // row[0]
"NoteType," // row[1]
"Cod," // row[2]
"UsrCod," // row[3]
"HieCod," // row[4]
"Unavailable," // row[5]
"UNIX_TIMESTAMP(TimeNote)" // row[6]
" FROM social_notes"
" WHERE NotCod=%ld",
SocNot->NotCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get data of social note"))
SocNot->NotCod))
{
/***** Get data of social note *****/
row = mysql_fetch_row (mysql_res);
@ -4482,19 +4532,20 @@ static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom)
if (SocCom->PubCod > 0)
{
/***** Get data of social comment from database *****/
DB_BuildQuery ("SELECT social_pubs.PubCod,social_pubs.PublisherCod,"
"social_pubs.NotCod,"
"UNIX_TIMESTAMP(social_pubs.TimePublish),"
"social_comments.Content,"
"social_comments.ImageName,"
"social_comments.ImageTitle,"
"social_comments.ImageURL"
if (DB_QuerySELECT (&mysql_res,"can not get data of social comment",
"SELECT social_pubs.PubCod," // row[0]
"social_pubs.PublisherCod," // row[1]
"social_pubs.NotCod," // row[2]
"UNIX_TIMESTAMP(social_pubs.TimePublish)," // row[3]
"social_comments.Content," // row[4]
"social_comments.ImageName," // row[5]
"social_comments.ImageTitle," // row[6]
"social_comments.ImageURL" // row[7]
" FROM social_pubs,social_comments"
" WHERE social_pubs.PubCod=%ld"
" AND social_pubs.PubType=%u"
" AND social_pubs.PubCod=social_comments.PubCod",
SocCom->PubCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE);
if (DB_QuerySELECT_new (&mysql_res,"can not get data of social comment"))
SocCom->PubCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE))
{
/***** Get data of social comment *****/
row = mysql_fetch_row (mysql_res);
@ -4734,10 +4785,14 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
Content[0] = '\0';
/***** Get summary and content from social post from database *****/
DB_BuildQuery ("SELECT PubCod,NotCod,PublisherCod,PubType,UNIX_TIMESTAMP(TimePublish)"
if (DB_QuerySELECT (&mysql_res,"can not get data of social publishing",
"SELECT PubCod," // row[0]
"NotCod," // row[1]
"PublisherCod," // row[2]
"PubType," // row[3]
"UNIX_TIMESTAMP(TimePublish)" // row[4]
" FROM social_pubs WHERE PubCod=%ld",
PubCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get data of social publishing") == 1) // Result should have a unique row
PubCod) == 1) // Result should have a unique row
{
/* Get data of social publishing */
row = mysql_fetch_row (mysql_res);
@ -4762,10 +4817,11 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
{
/***** Get content of social post from database *****/
// TODO: What happens if content is empty and an image is attached?
DB_BuildQuery ("SELECT Content FROM social_posts"
if (DB_QuerySELECT (&mysql_res,"can not get the content"
" of a social post",
"SELECT Content FROM social_posts"
" WHERE PstCod=%ld",
SocNot.Cod);
if (DB_QuerySELECT_new (&mysql_res,"can not get the content of a social post") == 1) // Result should have a unique row
SocNot.Cod) == 1) // Result should have a unique row
{
/***** Get row *****/
row = mysql_fetch_row (mysql_res);
@ -4801,10 +4857,11 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
case Soc_PUB_COMMENT_TO_NOTE:
/***** Get content of social post from database *****/
// TODO: What happens if content is empty and an image is attached?
DB_BuildQuery ("SELECT Content FROM social_comments"
if (DB_QuerySELECT (&mysql_res,"can not get the content"
" of a comment to a social note",
"SELECT Content FROM social_comments"
" WHERE PubCod=%ld",
SocPub.PubCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get the content of a comment to a social note") == 1) // Result should have a unique row
SocPub.PubCod) == 1) // Result should have a unique row
{
/***** Get row *****/
row = mysql_fetch_row (mysql_res);

View File

@ -206,7 +206,8 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void);
static void Sta_GetAndShowInssOrderedByNumCrss (void);
static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void);
static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void);
static void Sta_GetAndShowInss (const char *TxtFigure);
static void Sta_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss,
const char *TxtFigure);
static unsigned Sta_GetInsAndStat (struct Instit *Ins,MYSQL_RES *mysql_res);
static void Sta_GetAndShowDegreeTypesStats (void);
@ -1879,8 +1880,9 @@ static void Sta_WriteLogComments (long LogCod)
MYSQL_ROW row;
/***** Get log comments from database *****/
DB_BuildQuery ("SELECT Comments FROM log_comments WHERE LogCod=%ld",LogCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get log comments"))
if (DB_QuerySELECT (&mysql_res,"can not get log comments",
"SELECT Comments FROM log_comments WHERE LogCod=%ld",
LogCod))
{
/***** Get and write comments *****/
row = mysql_fetch_row (mysql_res);
@ -5155,6 +5157,8 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void)
{
extern const char *Txt_Institutions_by_number_of_centres;
extern const char *Txt_Centres;
MYSQL_RES *mysql_res;
unsigned NumInss = 0;
/***** Start box and table *****/
Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_centres,NULL,
@ -5164,13 +5168,17 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod,COUNT(*) AS N"
" FROM centres"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -5182,7 +5190,9 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void)
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod,COUNT(*) AS N"
" FROM centres"
" WHERE InsCod=%ld"
" GROUP BY InsCod"
@ -5193,7 +5203,12 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void)
Lay_WrongScopeExit ();
break;
}
Sta_GetAndShowInss (Txt_Centres);
/***** Show institutions *****/
Sta_ShowInss (&mysql_res,NumInss,Txt_Centres);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** End table and box *****/
Box_EndBoxTable ();
@ -5207,6 +5222,8 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void)
{
extern const char *Txt_Institutions_by_number_of_degrees;
extern const char *Txt_Degrees;
MYSQL_RES *mysql_res;
unsigned NumInss = 0;
/***** Start box and table *****/
Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_degrees,NULL,
@ -5216,14 +5233,18 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees"
" WHERE centres.CtrCod=degrees.CtrCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres,degrees"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -5236,7 +5257,9 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void)
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -5248,7 +5271,12 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void)
Lay_WrongScopeExit ();
break;
}
Sta_GetAndShowInss (Txt_Degrees);
/***** Show institutions *****/
Sta_ShowInss (&mysql_res,NumInss,Txt_Degrees);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** End table and box *****/
Box_EndBoxTable ();
@ -5262,6 +5290,8 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void)
{
extern const char *Txt_Institutions_by_number_of_courses;
extern const char *Txt_Courses;
MYSQL_RES *mysql_res;
unsigned NumInss = 0;
/***** Start box and table *****/
Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_courses,NULL,
@ -5271,7 +5301,9 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses"
" WHERE centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
@ -5279,7 +5311,9 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void)
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres,degrees,courses"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -5293,7 +5327,9 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void)
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -5306,7 +5342,12 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void)
Lay_WrongScopeExit ();
break;
}
Sta_GetAndShowInss (Txt_Courses);
/***** Show institutions *****/
Sta_ShowInss (&mysql_res,NumInss,Txt_Courses);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** End table and box *****/
Box_EndBoxTable ();
@ -5320,6 +5361,8 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
{
extern const char *Txt_Institutions_by_number_of_users_in_courses;
extern const char *Txt_Users;
MYSQL_RES *mysql_res;
unsigned NumInss = 0;
/***** Start box and table *****/
Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_users_in_courses,NULL,
@ -5329,7 +5372,9 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
" FROM centres,degrees,courses,crs_usr"
" WHERE centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
@ -5338,7 +5383,9 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
" FROM institutions,centres,degrees,courses,crs_usr"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -5353,7 +5400,9 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
NumInss =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N"
" FROM centres,degrees,courses,crs_usr"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -5367,7 +5416,12 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
Lay_WrongScopeExit ();
break;
}
Sta_GetAndShowInss (Txt_Users);
/***** Show institutions *****/
Sta_ShowInss (&mysql_res,NumInss,Txt_Users);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** End table and box *****/
Box_EndBoxTable ();
@ -5382,6 +5436,8 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
{
extern const char *Txt_Institutions_by_number_of_users_who_claim_to_belong_to_them;
extern const char *Txt_Users;
MYSQL_RES *mysql_res;
unsigned NumInss = 0;
/***** Start box and table *****/
Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_users_who_claim_to_belong_to_them,
@ -5422,7 +5478,12 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
Lay_WrongScopeExit ();
break;
}
Sta_GetAndShowInss (Txt_Users);
/***** Show institutions *****/
Sta_ShowInss (&mysql_res,NumInss,Txt_Users);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** End table and box *****/
Box_EndBoxTable ();
@ -5432,12 +5493,11 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
/****************** Get and show stats about institutions ********************/
/*****************************************************************************/
static void Sta_GetAndShowInss (const char *TxtFigure)
static void Sta_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss,
const char *TxtFigure)
{
extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_Institution;
MYSQL_RES *mysql_res;
unsigned NumInss;
unsigned NumIns;
unsigned NumOrder;
unsigned NumberLastRow;
@ -5446,7 +5506,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure)
bool TRIsOpen = false;
/***** Query database *****/
if ((NumInss = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get institutions")))
if (NumInss)
{
/* Draw the classphoto/list */
switch (Gbl.Usrs.Me.ListType)
@ -5463,7 +5523,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure)
}
/***** Get institution data and statistic *****/
NumberThisRow = Sta_GetInsAndStat (&Ins,mysql_res);
NumberThisRow = Sta_GetInsAndStat (&Ins,*mysql_res);
/***** Write link to institution *****/
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE\">",
@ -5504,7 +5564,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure)
NumIns++)
{
/***** Get institution data and statistic *****/
NumberThisRow = Sta_GetInsAndStat (&Ins,mysql_res);
NumberThisRow = Sta_GetInsAndStat (&Ins,*mysql_res);
/***** Number of order *****/
if (NumberThisRow != NumberLastRow)
@ -5548,9 +5608,6 @@ static void Sta_GetAndShowInss (const char *TxtFigure)
break;
}
}
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/
@ -5890,7 +5947,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -5934,7 +5992,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT Cod),"
"-1,"
"-1,"
"MAX(NumLevels),"
@ -5949,7 +6008,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -5964,7 +6024,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT COUNT(DISTINCT Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT Cod),"
"-1,"
"COUNT(DISTINCT ZoneUsrCod),"
"MAX(NumLevels),"
@ -5976,7 +6037,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT ZoneUsrCod),"
"MAX(NumLevels),"
@ -5997,7 +6059,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -6053,7 +6116,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6073,7 +6137,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6093,7 +6158,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6110,7 +6176,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6137,7 +6204,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -6191,7 +6259,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6210,7 +6279,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6229,7 +6299,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6245,7 +6316,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6271,7 +6343,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -6323,7 +6396,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6341,7 +6415,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6359,7 +6434,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6374,7 +6450,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6399,7 +6476,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -6449,7 +6527,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6466,7 +6545,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6483,7 +6563,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6497,7 +6578,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6521,7 +6603,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod),"
"COUNT(DISTINCT GrpCod)-1,"
"-1,"
"MAX(NumLevels),"
@ -6569,7 +6652,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_BuildQuery ("SELECT 1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT 1,"
"-1,"
"-1,"
"MAX(NumLevels),"
@ -6584,7 +6668,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"COUNT(DISTINCT file_browser_size.Cod),"
"-1,"
"MAX(file_browser_size.NumLevels),"
@ -6600,7 +6685,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_BuildQuery ("SELECT 1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT 1,"
"-1,"
"COUNT(DISTINCT ZoneUsrCod),"
"MAX(NumLevels),"
@ -6612,7 +6698,8 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_BuildQuery ("SELECT -1,"
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT -1,"
"-1,"
"COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
"MAX(file_browser_size.NumLevels),"
@ -6634,7 +6721,6 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
Lay_WrongScopeExit ();
break;
}
DB_QuerySELECT_new (&mysql_res,"can not get size of a file browser");
/* Get row */
row = mysql_fetch_row (mysql_res);
@ -6753,21 +6839,26 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumRows,NumRow;
unsigned NumRows = 0; // Initialized to avoid warning
unsigned NumRow;
unsigned Public;
/***** Get the size of a file browser *****/
switch (Scope)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT Public,COUNT(*)"
" FROM files"
" WHERE License=%u"
" GROUP BY Public",
(unsigned) License);
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT files.Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT files.Public,COUNT(*)"
" FROM institutions,centres,degrees,courses,files"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -6783,7 +6874,9 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
(unsigned) License);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT files.Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT files.Public,COUNT(*)"
" FROM centres,degrees,courses,files"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -6798,7 +6891,9 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
(unsigned) License);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT files.Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT files.Public,COUNT(*)"
" FROM degrees,courses,files"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
@ -6812,7 +6907,9 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
(unsigned) License);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT files.Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT files.Public,COUNT(*)"
" FROM courses,files"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=files.Cod"
@ -6825,7 +6922,9 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
(unsigned) License);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT Public,COUNT(*)"
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT Public,COUNT(*)"
" FROM files"
" WHERE Cod=%ld"
" AND FileBrowser IN (%u,%u)"
@ -6840,7 +6939,6 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u
Lay_WrongScopeExit ();
break;
}
NumRows = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get number of OERs");
/* Reset values to zero */
NumFiles[0] = NumFiles[1] = 0L;
@ -7241,6 +7339,7 @@ static void Sta_GetAndShowSocialActivityStats (void)
MYSQL_ROW row;
Soc_NoteType_t NoteType;
unsigned long NumSocialNotes;
unsigned long NumRows;
unsigned NumUsrs;
unsigned NumUsrsTotal;
@ -7287,12 +7386,16 @@ static void Sta_GetAndShowSocialActivityStats (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(*),COUNT(DISTINCT UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(*),"
"COUNT(DISTINCT UsrCod)"
" FROM social_notes WHERE NoteType=%u",
NoteType);
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM institutions,centres,degrees,courses,crs_usr,social_notes"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -7305,7 +7408,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
(unsigned) NoteType);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM centres,degrees,courses,crs_usr,social_notes"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -7317,7 +7422,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
(unsigned) NoteType);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM degrees,courses,crs_usr,social_notes"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
@ -7328,7 +7435,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
(unsigned) NoteType);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM courses,crs_usr,social_notes"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
@ -7338,7 +7447,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
(unsigned) NoteType);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM crs_usr,social_notes"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=social_notes.UsrCod"
@ -7348,11 +7459,13 @@ static void Sta_GetAndShowSocialActivityStats (void)
break;
default:
Lay_WrongScopeExit ();
NumRows = 0; // Initialized to avoid warning
break;
}
NumSocialNotes = 0;
NumUsrs = 0;
if (DB_QuerySELECT_new (&mysql_res,"can not get number of social notes"))
if (NumRows)
{
/***** Get number of social notes and number of users *****/
row = mysql_fetch_row (mysql_res);
@ -7402,11 +7515,15 @@ static void Sta_GetAndShowSocialActivityStats (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(*),COUNT(DISTINCT UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(*),"
"COUNT(DISTINCT UsrCod)"
" FROM social_notes");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM institutions,centres,degrees,courses,crs_usr,social_notes"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -7417,7 +7534,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM centres,degrees,courses,crs_usr,social_notes"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -7427,7 +7546,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
Gbl.CurrentIns.Ins.InsCod);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM degrees,courses,crs_usr,social_notes"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
@ -7436,7 +7557,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
Gbl.CurrentCtr.Ctr.CtrCod);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM courses,crs_usr,social_notes"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
@ -7444,7 +7567,9 @@ static void Sta_GetAndShowSocialActivityStats (void)
Gbl.CurrentDeg.Deg.DegCod);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)"
NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT social_notes.NotCod),"
"COUNT(DISTINCT social_notes.UsrCod)"
" FROM crs_usr,social_notes"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=social_notes.UsrCod",
@ -7452,11 +7577,13 @@ static void Sta_GetAndShowSocialActivityStats (void)
break;
default:
Lay_WrongScopeExit ();
NumRows = 0; // Initialized to avoid warning
break;
}
NumSocialNotes = 0;
NumUsrs = 0;
if (DB_QuerySELECT_new (&mysql_res,"can not get number of social notes"))
if (NumRows)
{
/* Get number of social notes and number of users */
row = mysql_fetch_row (mysql_res);
@ -7658,7 +7785,9 @@ static void Sta_GetAndShowFollowStats (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(%s) AS N"
" FROM usr_follow"
" GROUP BY %s) AS F",
@ -7666,7 +7795,9 @@ static void Sta_GetAndShowFollowStats (void)
FieldDB[1 - Fol]);
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
" FROM institutions,centres,degrees,courses,crs_usr,usr_follow"
" WHERE institutions.CtyCod=%ld"
@ -7682,7 +7813,9 @@ static void Sta_GetAndShowFollowStats (void)
FieldDB[1 - Fol]);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
" FROM centres,degrees,courses,crs_usr,usr_follow"
" WHERE centres.InsCod=%ld"
@ -7697,7 +7830,9 @@ static void Sta_GetAndShowFollowStats (void)
FieldDB[1 - Fol]);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
" FROM degrees,courses,crs_usr,usr_follow"
" WHERE degrees.CtrCod=%ld"
@ -7711,7 +7846,9 @@ static void Sta_GetAndShowFollowStats (void)
FieldDB[1 - Fol]);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
" FROM courses,crs_usr,usr_follow"
" WHERE courses.DegCod=%ld"
@ -7724,7 +7861,9 @@ static void Sta_GetAndShowFollowStats (void)
FieldDB[1 - Fol]);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT AVG(N) FROM "
DB_QuerySELECT (&mysql_res,"can not get number of questions"
" per survey",
"SELECT AVG(N) FROM "
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
" FROM crs_usr,usr_follow"
" WHERE crs_usr.CrsCod=%ld"
@ -7739,7 +7878,6 @@ static void Sta_GetAndShowFollowStats (void)
Lay_WrongScopeExit ();
break;
}
DB_QuerySELECT_new (&mysql_res,"can not get number of questions per survey");
/***** Get average *****/
row = mysql_fetch_row (mysql_res);
@ -8320,13 +8458,17 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents),SUM(NumMails)"
" FROM sta_notif"
" WHERE NotifyEvent=%u",
(unsigned) NotifyEvent);
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
" FROM institutions,centres,degrees,sta_notif"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
@ -8336,7 +8478,9 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.CurrentCty.Cty.CtyCod,(unsigned) NotifyEvent);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
" FROM centres,degrees,sta_notif"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
@ -8345,7 +8489,9 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.CurrentIns.Ins.InsCod,(unsigned) NotifyEvent);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)"
" FROM degrees,sta_notif"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=sta_notif.DegCod"
@ -8353,14 +8499,18 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) NotifyEvent);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents),SUM(NumMails)"
" FROM sta_notif"
" WHERE DegCod=%ld"
" AND NotifyEvent=%u",
Gbl.CurrentDeg.Deg.DegCod,(unsigned) NotifyEvent);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)"
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents),SUM(NumMails)"
" FROM sta_notif"
" WHERE CrsCod=%ld"
" AND NotifyEvent=%u",
@ -8370,7 +8520,6 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void)
Lay_WrongScopeExit ();
break;
}
DB_QuerySELECT_new (&mysql_res,"can not get the number of notifications by email");
row = mysql_fetch_row (mysql_res);