diff --git a/sql/swad.sql b/sql/swad.sql index cadd30e9..7bbb04c7 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -1087,7 +1087,7 @@ CREATE TABLE IF NOT EXISTS tst_answers ( Answer TEXT NOT NULL, Feedback TEXT NOT NULL, ImageName VARCHAR(43) NOT NULL, - ImageTitle VARCHAR(255) NOT NULL, + ImageTitle VARCHAR(2047) NOT NULL, ImageURL VARCHAR(255) NOT NULL, Correct ENUM('N','Y') NOT NULL, INDEX(QstCod)); @@ -1147,7 +1147,7 @@ CREATE TABLE IF NOT EXISTS tst_questions ( Stem TEXT NOT NULL, Feedback TEXT NOT NULL, ImageName VARCHAR(43) NOT NULL, - ImageTitle VARCHAR(255) NOT NULL, + ImageTitle VARCHAR(2047) NOT NULL, ImageURL VARCHAR(255) NOT NULL, NumHits INT NOT NULL DEFAULT 0, NumHitsNotBlank INT NOT NULL DEFAULT 0, @@ -1170,11 +1170,10 @@ CREATE TABLE IF NOT EXISTS tst_tags ( TagCod INT NOT NULL AUTO_INCREMENT, CrsCod INT NOT NULL DEFAULT -1, ChangeTime DATETIME NOT NULL, - TagTxt VARCHAR(255) NOT NULL, + TagTxt VARCHAR(2047) NOT NULL, TagHidden ENUM('N','Y') NOT NULL, UNIQUE INDEX(TagCod), - INDEX(CrsCod,ChangeTime), - INDEX(TagTxt)); + INDEX(CrsCod,ChangeTime)); -- -- Table usr_banned: stores users banned for ranking -- diff --git a/swad_changelog.h b/swad_changelog.h index 5f7405dd..1920ac23 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -209,13 +209,26 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.155.26 (2017-03-13)" +#define Log_PLATFORM_VERSION "SWAD 16.155.27 (2017-03-13)" #define CSS_FILE "swad16.147.css" #define JS_FILE "swad16.144.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 /* + Version 16.155.27:Mar 13, 2017 Adjusting size of database fields. (217038 lines) + 4 changes necessary in database. +ALTER TABLE tst_answers CHANGE COLUMN ImageTitle ImageTitle VARCHAR(2047) NOT NULL; +ALTER TABLE tst_questions CHANGE COLUMN ImageTitle ImageTitle VARCHAR(2047) NOT NULL; +DROP INDEX TagTxt ON tst_tags; +ALTER TABLE tst_tags CHANGE COLUMN TagTxt TagTxt VARCHAR(2047) NOT NULL; + + DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_tags (" + "TagCod INT NOT NULL AUTO_INCREMENT," + "CrsCod INT NOT NULL DEFAULT -1," + "ChangeTime DATETIME NOT NULL," + "TagTxt VARCHAR(2047) NOT NULL," // Tst_MAX_BYTES_TAG + Version 16.155.26:Mar 13, 2017 Adjusting size of database fields. (217009 lines) 3 changes necessary in database: ALTER TABLE timetable_crs CHANGE COLUMN Place Place VARCHAR(511) NOT NULL; diff --git a/swad_database.c b/swad_database.c index f2a09a7d..70014378 100644 --- a/swad_database.c +++ b/swad_database.c @@ -2303,22 +2303,22 @@ mysql> DESCRIBE tst_answers; | Answer | text | NO | | NULL | | | Feedback | text | NO | | NULL | | | ImageName | varchar(43) | NO | | NULL | | -| ImageTitle | varchar(255) | NO | | NULL | | +| ImageTitle | varchar(2047) | NO | | NULL | | | ImageURL | varchar(255) | NO | | NULL | | | Correct | enum('N','Y') | NO | | NULL | | +------------+---------------+------+-----+---------+-------+ -8 rows in set (0.01 sec) +8 rows in set (0,00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_answers (" - "QstCod INT NOT NULL," - "AnsInd TINYINT NOT NULL," - "Answer TEXT NOT NULL," - "Feedback TEXT NOT NULL," - "ImageName VARCHAR(43) NOT NULL," - "ImageTitle VARCHAR(255) NOT NULL," - "ImageURL VARCHAR(255) NOT NULL," - "Correct ENUM('N','Y') NOT NULL," - "INDEX(QstCod))"); + "QstCod INT NOT NULL," + "AnsInd TINYINT NOT NULL," + "Answer TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK + "Feedback TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK + "ImageName VARCHAR(43) NOT NULL," // Img_BYTES_NAME + "ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE + "ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW + "Correct ENUM('N','Y') NOT NULL," + "INDEX(QstCod))"); /***** Table tst_config *****/ /* @@ -2337,14 +2337,14 @@ mysql> DESCRIBE tst_config; 7 rows in set (0,00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_config (" - "CrsCod INT NOT NULL DEFAULT -1," - "Pluggable ENUM('unknown','N','Y') NOT NULL DEFAULT 'unknown'," - "Min INT NOT NULL," - "Def INT NOT NULL," - "Max INT NOT NULL," - "MinTimeNxtTstPerQst INT NOT NULL DEFAULT 0," - "Feedback ENUM('nothing','total_result','each_result','each_good_bad','full_feedback') NOT NULL," - "UNIQUE INDEX(CrsCod))"); + "CrsCod INT NOT NULL DEFAULT -1," + "Pluggable ENUM('unknown','N','Y') NOT NULL DEFAULT 'unknown'," + "Min INT NOT NULL," + "Def INT NOT NULL," + "Max INT NOT NULL," + "MinTimeNxtTstPerQst INT NOT NULL DEFAULT 0," + "Feedback ENUM('nothing','total_result','each_result','each_good_bad','full_feedback') NOT NULL," + "UNIQUE INDEX(CrsCod))"); /***** Table tst_exam_questions *****/ /* @@ -2362,13 +2362,13 @@ mysql> DESCRIBE tst_exam_questions; 6 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_exam_questions (" - "TstCod INT NOT NULL," - "QstCod INT NOT NULL," - "QstInd INT NOT NULL," - "Score DOUBLE PRECISION NOT NULL DEFAULT 0," - "Indexes TEXT NOT NULL," - "Answers TEXT NOT NULL," - "INDEX(TstCod,QstCod))"); + "TstCod INT NOT NULL," + "QstCod INT NOT NULL," + "QstInd INT NOT NULL," + "Score DOUBLE PRECISION NOT NULL DEFAULT 0," + "Indexes TEXT NOT NULL," // Tst_MAX_BYTES_INDEXES_ONE_QST + "Answers TEXT NOT NULL," // Tst_MAX_BYTES_ANSWERS_ONE_QST + "INDEX(TstCod,QstCod))"); /***** Table tst_exams *****/ /* @@ -2388,16 +2388,16 @@ mysql> DESCRIBE tst_exams; 8 rows in set (0.05 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_exams (" - "TstCod INT NOT NULL AUTO_INCREMENT," - "CrsCod INT NOT NULL," - "UsrCod INT NOT NULL," - "AllowTeachers ENUM('N','Y') NOT NULL DEFAULT 'N'," - "TstTime DATETIME NOT NULL," - "NumQsts INT NOT NULL DEFAULT 0," - "NumQstsNotBlank INT NOT NULL DEFAULT 0," - "Score DOUBLE PRECISION NOT NULL DEFAULT 0," - "UNIQUE INDEX(TstCod)," - "INDEX(CrsCod,UsrCod))"); + "TstCod INT NOT NULL AUTO_INCREMENT," + "CrsCod INT NOT NULL," + "UsrCod INT NOT NULL," + "AllowTeachers ENUM('N','Y') NOT NULL DEFAULT 'N'," + "TstTime DATETIME NOT NULL," + "NumQsts INT NOT NULL DEFAULT 0," + "NumQstsNotBlank INT NOT NULL DEFAULT 0," + "Score DOUBLE PRECISION NOT NULL DEFAULT 0," + "UNIQUE INDEX(TstCod)," + "INDEX(CrsCod,UsrCod))"); /***** Table tst_question_tags *****/ /* @@ -2412,10 +2412,10 @@ mysql> DESCRIBE tst_question_tags; 3 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_question_tags (" - "QstCod INT NOT NULL," - "TagCod INT NOT NULL," - "TagInd TINYINT NOT NULL," - "UNIQUE INDEX(QstCod,TagCod))"); + "QstCod INT NOT NULL," + "TagCod INT NOT NULL," + "TagInd TINYINT NOT NULL," + "UNIQUE INDEX(QstCod,TagCod))"); /***** Table tst_questions *****/ /* @@ -2431,29 +2431,30 @@ mysql> DESCRIBE tst_questions; | Stem | text | NO | | NULL | | | Feedback | text | NO | | NULL | | | ImageName | varchar(43) | NO | | NULL | | -| ImageTitle | varchar(255) | NO | | NULL | | +| ImageTitle | varchar(2047) | NO | | NULL | | | ImageURL | varchar(255) | NO | | NULL | | | NumHits | int(11) | NO | | 0 | | | NumHitsNotBlank | int(11) | NO | | 0 | | | Score | double | NO | | 0 | | +-----------------+---------------------------------------------------------------------------+------+-----+---------+----------------+ -13 rows in set (0.00 sec) +13 rows in set (0,00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_questions (" - "QstCod INT NOT NULL AUTO_INCREMENT," - "CrsCod INT NOT NULL DEFAULT -1," - "EditTime DATETIME NOT NULL," - "AnsType ENUM ('int','float','true_false','unique_choice','multiple_choice','text') NOT NULL," - "Shuffle ENUM('N','Y') NOT NULL," - "Stem TEXT NOT NULL," - "Feedback TEXT NOT NULL," - "ImageName VARCHAR(43) NOT NULL," - "ImageTitle VARCHAR(255) NOT NULL," - "NumHits INT NOT NULL DEFAULT 0," - "NumHitsNotBlank INT NOT NULL DEFAULT 0," - "Score DOUBLE PRECISION NOT NULL DEFAULT 0," - "UNIQUE INDEX(QstCod)," - "INDEX(CrsCod,EditTime))"); + "QstCod INT NOT NULL AUTO_INCREMENT," + "CrsCod INT NOT NULL DEFAULT -1," + "EditTime DATETIME NOT NULL," + "AnsType ENUM ('int','float','true_false','unique_choice','multiple_choice','text') NOT NULL," + "Shuffle ENUM('N','Y') NOT NULL," + "Stem TEXT NOT NULL," // Cns_MAX_BYTES_TEXT + "Feedback TEXT NOT NULL," // Cns_MAX_BYTES_TEXT + "ImageName VARCHAR(43) NOT NULL," // Img_BYTES_NAME + "ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE + "ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW + "NumHits INT NOT NULL DEFAULT 0," + "NumHitsNotBlank INT NOT NULL DEFAULT 0," + "Score DOUBLE PRECISION NOT NULL DEFAULT 0," + "UNIQUE INDEX(QstCod)," + "INDEX(CrsCod,EditTime))"); /***** Table tst_status *****/ /* @@ -2469,11 +2470,11 @@ mysql> DESCRIBE tst_status; 4 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_status (" - "SessionId CHAR(43) NOT NULL," - "CrsCod INT NOT NULL," - "NumTst INT NOT NULL," - "Status TINYINT NOT NULL," - "UNIQUE INDEX(SessionId,CrsCod,NumTst))"); + "SessionId CHAR(43) NOT NULL," + "CrsCod INT NOT NULL," + "NumTst INT NOT NULL," + "Status TINYINT NOT NULL," + "UNIQUE INDEX(SessionId,CrsCod,NumTst))"); /***** Table tst_tags *****/ /* @@ -2484,21 +2485,20 @@ mysql> DESCRIBE tst_tags; | TagCod | int(11) | NO | PRI | NULL | auto_increment | | CrsCod | int(11) | NO | MUL | -1 | | | ChangeTime | datetime | NO | | NULL | | -| TagTxt | varchar(255) | NO | MUL | NULL | | +| TagTxt | varchar(2047) | NO | | NULL | | | TagHidden | enum('N','Y') | NO | | NULL | | +------------+---------------+------+-----+---------+----------------+ -5 rows in set (0.00 sec) +5 rows in set (0,00 sec) */ // CrsCod is redundant for speed in querys DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_tags (" - "TagCod INT NOT NULL AUTO_INCREMENT," - "CrsCod INT NOT NULL DEFAULT -1," - "ChangeTime DATETIME NOT NULL," - "TagTxt VARCHAR(255) NOT NULL," - "TagHidden ENUM('N','Y') NOT NULL," - "UNIQUE INDEX(TagCod)," - "INDEX(CrsCod,ChangeTime)," - "INDEX(TagTxt))"); + "TagCod INT NOT NULL AUTO_INCREMENT," + "CrsCod INT NOT NULL DEFAULT -1," + "ChangeTime DATETIME NOT NULL," + "TagTxt VARCHAR(2047) NOT NULL," // Tst_MAX_BYTES_TAG + "TagHidden ENUM('N','Y') NOT NULL," + "UNIQUE INDEX(TagCod)," + "INDEX(CrsCod,ChangeTime))"); /***** Table usr_banned *****/ /* diff --git a/swad_global.h b/swad_global.h index d6feac4f..a2230556 100644 --- a/swad_global.h +++ b/swad_global.h @@ -653,8 +653,8 @@ struct Globals Tst_AnswerType_t AnswerType; unsigned NumQsts; long QstCodes[Tst_MAX_QUESTIONS_PER_TEST]; // Codes of the sent/received questions in a test - char StrIndexesOneQst[Tst_MAX_QUESTIONS_PER_TEST][Tst_MAX_SIZE_INDEXES_ONE_QST + 1]; // 0 1 2 3, 3 0 2 1, etc. - char StrAnswersOneQst[Tst_MAX_QUESTIONS_PER_TEST][Tst_MAX_SIZE_ANSWERS_ONE_QST + 1]; // Answers selected by user + char StrIndexesOneQst[Tst_MAX_QUESTIONS_PER_TEST][Tst_MAX_BYTES_INDEXES_ONE_QST + 1]; // 0 1 2 3, 3 0 2 1, etc. + char StrAnswersOneQst[Tst_MAX_QUESTIONS_PER_TEST][Tst_MAX_BYTES_ANSWERS_ONE_QST + 1]; // Answers selected by user bool AllowTeachers; // Can teachers of this course see the test result? bool AllAnsTypes; struct diff --git a/swad_test.c b/swad_test.c index 6d66d539..d471dd5b 100644 --- a/swad_test.c +++ b/swad_test.c @@ -592,11 +592,13 @@ static void Tst_GetQuestionsAndAnswersFromForm (void) /* Get indexes for this question */ sprintf (StrQstIndOrAns,"Ind%06u",NumQst); - Par_GetParMultiToText (StrQstIndOrAns,Gbl.Test.StrIndexesOneQst[NumQst],Tst_MAX_SIZE_INDEXES_ONE_QST); /* If choice ==> "0", "1", "2",... */ + Par_GetParMultiToText (StrQstIndOrAns,Gbl.Test.StrIndexesOneQst[NumQst], + Tst_MAX_BYTES_INDEXES_ONE_QST); /* If choice ==> "0", "1", "2",... */ /* Get answers selected by user for this question */ sprintf (StrQstIndOrAns,"Ans%06u",NumQst); - Par_GetParMultiToText (StrQstIndOrAns,Gbl.Test.StrAnswersOneQst[NumQst],Tst_MAX_SIZE_ANSWERS_ONE_QST); /* If answer type == T/F ==> " ", "T", "F"; if choice ==> "0", "2",... */ + Par_GetParMultiToText (StrQstIndOrAns,Gbl.Test.StrAnswersOneQst[NumQst], + Tst_MAX_BYTES_ANSWERS_ONE_QST); /* If answer type == T/F ==> " ", "T", "F"; if choice ==> "0", "2",... */ } } @@ -691,7 +693,7 @@ static bool Tst_CheckIfNextTstAllowed (void) static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus) { - char Query[512 + Ses_BYTES_SESSION_ID]; + char Query[256 + Ses_BYTES_SESSION_ID]; /***** Delete old status from expired sessions *****/ sprintf (Query,"DELETE FROM tst_status" @@ -703,7 +705,8 @@ static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus) " (SessionId,CrsCod,NumTst,Status)" " VALUES" " ('%s','%ld','%u','%u')", - Gbl.Session.Id,Gbl.CurrentCrs.Crs.CrsCod,NumTst,(unsigned) TstStatus); + Gbl.Session.Id,Gbl.CurrentCrs.Crs.CrsCod, + NumTst,(unsigned) TstStatus); DB_QueryREPLACE (Query,"can not update status of test"); } @@ -713,7 +716,7 @@ static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus) static Tst_Status_t Tst_GetTstStatus (unsigned NumTst) { - char Query[512]; + char Query[256 + Ses_BYTES_SESSION_ID]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned long NumRows; @@ -748,7 +751,7 @@ static Tst_Status_t Tst_GetTstStatus (unsigned NumTst) static unsigned Tst_GetNumAccessesTst (void) { - char Query[512]; + char Query[256]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned long NumRows; @@ -758,7 +761,7 @@ static unsigned Tst_GetNumAccessesTst (void) { /***** Get number of hits to test from database *****/ sprintf (Query,"SELECT NumAccTst FROM crs_usr" - " WHERE CrsCod='%ld' AND UsrCod='%ld'", + " WHERE CrsCod='%ld' AND UsrCod='%ld'", Gbl.CurrentCrs.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod); NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get number of hits to test"); @@ -1188,7 +1191,8 @@ static void Tst_UpdateScoreQst (long QstCod,float ScoreThisQst,bool AnswerIsNotB Str_SetDecimalPointToUS (); // To print the floating point as a dot if (AnswerIsNotBlank) sprintf (Query,"UPDATE tst_questions" - " SET NumHits=NumHits+1,NumHitsNotBlank=NumHitsNotBlank+1,Score=Score+(%lf)" + " SET NumHits=NumHits+1,NumHitsNotBlank=NumHitsNotBlank+1," + "Score=Score+(%lf)" " WHERE QstCod='%ld'", ScoreThisQst,QstCod); else // The answer is blank @@ -1206,7 +1210,7 @@ static void Tst_UpdateScoreQst (long QstCod,float ScoreThisQst,bool AnswerIsNotB static void Tst_UpdateMyNumAccessTst (unsigned NumAccessesTst) { - char Query[512]; + char Query[256]; /***** Update my number of accesses to test in this course *****/ sprintf (Query,"UPDATE crs_usr SET NumAccTst='%u'" @@ -1222,7 +1226,7 @@ static void Tst_UpdateMyNumAccessTst (unsigned NumAccessesTst) static void Tst_UpdateLastAccTst (void) { - char Query[512]; + char Query[256]; /***** Update date-time and number of questions of this test *****/ sprintf (Query,"UPDATE crs_usr SET LastAccTst=NOW(),NumQstsLastTst='%u'" @@ -1499,26 +1503,30 @@ void Tst_RenameTag (void) sprintf (Query,"DROP TEMPORARY TABLE IF EXISTS tst_question_tags_tmp"); if (mysql_query (&Gbl.mysql,Query)) DB_ExitOnMySQLError ("can not remove temporary table"); - sprintf (Query,"CREATE TEMPORARY TABLE tst_question_tags_tmp ENGINE=MEMORY" - " SELECT QstCod FROM tst_question_tags WHERE TagCod='%ld'", + sprintf (Query,"CREATE TEMPORARY TABLE tst_question_tags_tmp" + " ENGINE=MEMORY" + " SELECT QstCod FROM tst_question_tags" + " WHERE TagCod='%ld'", ExistingTagCod); if (mysql_query (&Gbl.mysql,Query)) DB_ExitOnMySQLError ("can not create temporary table"); /* Remove old tag in questions where it would be repeated */ + // New tag existed for a question ==> delete old tag sprintf (Query,"DELETE FROM tst_question_tags" " WHERE TagCod='%ld'" " AND QstCod IN" - " (SELECT QstCod FROM tst_question_tags_tmp)", // New tag existed for a question ==> delete old tag + " (SELECT QstCod FROM tst_question_tags_tmp)", OldTagCod); DB_QueryDELETE (Query,"can not remove a tag from some questions"); /* Change old tag to new tag in questions where it would not be repeated */ + // New tag did not exist for a question ==> change old tag to new tag sprintf (Query,"UPDATE tst_question_tags" " SET TagCod='%ld'" " WHERE TagCod='%ld'" " AND QstCod NOT IN" - " (SELECT QstCod FROM tst_question_tags_tmp)", // New tag did not exist for a question ==> change old tag to new tag + " (SELECT QstCod FROM tst_question_tags_tmp)", ExistingTagCod, OldTagCod); DB_QueryUPDATE (Query,"can not update a tag in some questions"); @@ -1562,7 +1570,7 @@ void Tst_RenameTag (void) static bool Tst_CheckIfCurrentCrsHasTestTags (void) { - char Query[512]; + char Query[128]; /***** Get available tags from database *****/ sprintf (Query,"SELECT COUNT(*) FROM tst_tags WHERE CrsCod='%ld'", @@ -1577,7 +1585,7 @@ static bool Tst_CheckIfCurrentCrsHasTestTags (void) static unsigned long Tst_GetAllTagsFromCurrentCrs (MYSQL_RES **mysql_res) { - char Query[512]; + char Query[256]; /***** Get available tags from database *****/ sprintf (Query,"SELECT TagCod,TagTxt,TagHidden FROM tst_tags" @@ -1593,7 +1601,7 @@ static unsigned long Tst_GetAllTagsFromCurrentCrs (MYSQL_RES **mysql_res) static unsigned long Tst_GetEnabledTagsFromThisCrs (MYSQL_RES **mysql_res) { - char Query[512]; + char Query[256]; /***** Get available not hidden tags from database *****/ sprintf (Query,"SELECT TagCod,TagTxt FROM tst_tags" @@ -1963,7 +1971,7 @@ static void Tst_PutInputFieldNumQst (const char *Field,const char *Label, static void Tst_GetConfigTstFromDB (void) { - char Query[512]; + char Query[256]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned long NumRows; @@ -2062,7 +2070,7 @@ void Tst_GetConfigFromRow (MYSQL_ROW row) bool Tst_CheckIfCourseHaveTestsAndPluggableIsUnknown (void) { - char Query[512]; + char Query[128]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned long NumRows; @@ -2302,26 +2310,31 @@ void Tst_ListQuestionsToEdit (void) unsigned long NumRows; /***** Get parameters, query the database and list the questions *****/ - if (Tst_GetParamsTst ()) // Get parameters of the form + if (Tst_GetParamsTst ()) // Get parameters from the form { - if ((NumRows = Tst_GetQuestionsForEdit (&mysql_res)) != 0) // Query database + if ((NumRows = Tst_GetQuestionsForEdit (&mysql_res)) != 0) // Query database { - /***** Buttons for edition *****/ + /* Buttons for edition */ fprintf (Gbl.F.Out,"