diff --git a/main/survey/survey.lib.php b/main/survey/survey.lib.php index 49359487f4..a56966c338 100644 --- a/main/survey/survey.lib.php +++ b/main/survey/survey.lib.php @@ -23,7 +23,7 @@ $config['survey']['debug'] = false; /** * @package dokeos.survey * @author Patrick Cool , Ghent University: cleanup, refactoring and rewriting large parts (if not all) of the code -* @version $Id: survey.lib.php 14911 2008-04-15 21:39:40Z yannoo $ +* @version $Id: survey.lib.php 14912 2008-04-15 22:44:17Z yannoo $ * * @todo move this file to inc/lib * @todo use consistent naming for the functions (save vs store for instance) @@ -2449,21 +2449,25 @@ class SurveyUtil { //show user fields section with a big th colspan that spans over all fields $extra_user_fields = UserManager::get_extra_fields(0,0,5,'ASC',false); $num = count($extra_user_fields); - echo '0?' colspan="'.$num.'"':'').'>'; - echo ''; - echo ''; - $display_extra_user_fields = true; + if($num > 0) + { + echo '0?' colspan="'.$num.'"':'').'>'; + echo ''; + echo ''; + $display_extra_user_fields = true; + } } - $sql = "SELECT questions.question_id, questions.type, questions.survey_question, count(options.question_option_id) as number_of_options - FROM $table_survey_question questions LEFT JOIN $table_survey_question_option options - ON questions.question_id = options.question_id - WHERE questions.question_id = options.question_id - AND questions.survey_id = '".Database::escape_string($_GET['survey_id'])."' - GROUP BY questions.question_id - ORDER BY questions.sort ASC"; + // Get all the questions ordered by the "sort" column + $sql = "SELECT q.question_id, q.type, q.survey_question, count(o.question_option_id) as number_of_options + FROM $table_survey_question q LEFT JOIN $table_survey_question_option o + ON q.question_id = o.question_id + WHERE q.question_id = o.question_id + AND q.survey_id = '".Database::escape_string($_GET['survey_id'])."' + GROUP BY q.question_id + ORDER BY q.sort ASC"; $result = api_sql_query($sql, __FILE__, __LINE__); while ($row = Database::fetch_array($result)) { @@ -2487,6 +2491,7 @@ class SurveyUtil { echo ''; echo ''; } + //no column at all if it's not a question } $questions[$row['question_id']] = $row; } @@ -2504,29 +2509,32 @@ class SurveyUtil { } } - $sql = "SELECT survey_question.question_id, survey_question.survey_id, survey_question.survey_question, survey_question.display, survey_question.sort, survey_question.type, - survey_question_option.question_option_id, survey_question_option.option_text, survey_question_option.sort as option_sort - FROM $table_survey_question survey_question - LEFT JOIN $table_survey_question_option survey_question_option - ON survey_question.question_id = survey_question_option.question_id - WHERE survey_question.survey_id = '".Database::escape_string($_GET['survey_id'])."' - ORDER BY survey_question.sort ASC"; + $sql = "SELECT sq.question_id, sq.survey_id, + sq.survey_question, sq.display, + sq.sort, sq.type, sqo.question_option_id, + sqo.option_text, sqo.sort as option_sort + FROM $table_survey_question sq + LEFT JOIN $table_survey_question_option sqo + ON sq.question_id = sqo.question_id + WHERE sq.survey_id = '".Database::escape_string($_GET['survey_id'])."' + ORDER BY sq.sort ASC, sqo.sort ASC"; $result = api_sql_query($sql, __FILE__, __LINE__); while ($row = Database::fetch_array($result)) { // we show the options if // 1. there is no question filter and the export button has not been clicked - // 2. there is a quesiton filter but the question is selected for display + // 2. there is a question filter but the question is selected for display if (!($_POST['submit_question_filter'] OR $_POST['export_report']) OR in_array($row['question_id'], $_POST['questions_filter'])) { // we do not show comment and pagebreak question types - if ($row['type'] <> 'comment' AND $row['type'] <> 'pagebreak') + if ($row['type'] <> 'comment' AND $row['type'] <> 'pagebreak' AND $row['type'] <> 'open') { echo ' '; echo $row['option_text']; echo ''; $possible_answers[$row['question_id']][$row['question_option_id']] =$row['question_option_id']; } + //no column at all if the question was not a question } } echo ' ';