Fix survey export to xls/csv see BT#15033

pull/2731/head
Julio Montoya 7 years ago
parent 50fa9dc194
commit a2e63833ae
  1. 12
      main/survey/reporting.php
  2. 253
      main/survey/surveyUtil.class.php

@ -62,21 +62,13 @@ if (!empty($exportReport) && !empty($format)) {
switch ($format) { switch ($format) {
case 'xls': case 'xls':
$filename = 'survey_results_'.$survey_id.'.xlsx'; $filename = 'survey_results_'.$survey_id.'.xlsx';
$data = SurveyUtil::export_complete_report_xls( $data = SurveyUtil::export_complete_report_xls($survey_data, $filename, $userId);
$survey_data,
$filename,
$userId
);
exit; exit;
break; break;
case 'csv': case 'csv':
default: default:
$data = SurveyUtil::export_complete_report( $data = SurveyUtil::export_complete_report($survey_data, $userId);
$survey_data,
$userId
);
$filename = 'survey_results_'.$survey_id.'.csv'; $filename = 'survey_results_'.$survey_id.'.csv';
header('Content-type: application/octet-stream'); header('Content-type: application/octet-stream');
header('Content-Type: application/force-download'); header('Content-Type: application/force-download');

@ -225,7 +225,7 @@ class SurveyUtil
*/ */
public static function handle_reporting_actions($survey_data, $people_filled) public static function handle_reporting_actions($survey_data, $people_filled)
{ {
$action = isset($_GET['action']) ? $_GET['action'] : null; $action = isset($_GET['action']) ? $_GET['action'] : '';
// Getting the number of question // Getting the number of question
$temp_questions_data = SurveyManager::get_questions($_GET['survey_id']); $temp_questions_data = SurveyManager::get_questions($_GET['survey_id']);
@ -243,20 +243,22 @@ class SurveyUtil
// Counting the number of questions that are relevant for the reporting // Counting the number of questions that are relevant for the reporting
$survey_data['number_of_questions'] = count($questions_data); $survey_data['number_of_questions'] = count($questions_data);
if ($action == 'questionreport') { switch ($action) {
self::display_question_report($survey_data); case 'questionreport':
} self::display_question_report($survey_data);
if ($action == 'userreport') { break;
self::display_user_report($people_filled, $survey_data); case 'userreport':
} self::display_user_report($people_filled, $survey_data);
if ($action == 'comparativereport') { break;
self::display_comparative_report(); case 'comparativereport':
} self::display_comparative_report();
if ($action == 'completereport') { break;
self::display_complete_report($survey_data); case 'completereport':
} self::display_complete_report($survey_data);
if ($action == 'deleteuserreport') { break;
self::delete_user_report($_GET['survey_id'], $_GET['user']); case 'deleteuserreport':
self::delete_user_report($_GET['survey_id'], $_GET['user']);
break;
} }
} }
@ -373,7 +375,7 @@ class SurveyUtil
echo '<select name="user" onchange="jumpMenu(\'parent\',this,0)">'; echo '<select name="user" onchange="jumpMenu(\'parent\',this,0)">';
echo '<option value="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=' echo '<option value="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action='
.Security::remove_XSS($_GET['action']).'&survey_id='.intval($_GET['survey_id']).'">' .Security::remove_XSS($_GET['action']).'&survey_id='.$surveyId.'&'.api_get_cidreq().'">'
.get_lang('SelectUser').'</option>'; .get_lang('SelectUser').'</option>';
foreach ($people_filled as $key => &$person) { foreach ($people_filled as $key => &$person) {
@ -389,8 +391,8 @@ class SurveyUtil
$id = $person; $id = $person;
} }
echo '<option value="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=' echo '<option value="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action='
.Security::remove_XSS($_GET['action']).'&survey_id='.intval($_GET['survey_id']).'&user=' .Security::remove_XSS($_GET['action']).'&survey_id='.$surveyId.'&user='
.Security::remove_XSS($id).'" '; .Security::remove_XSS($id).'&'.api_get_cidreq().'" ';
if (isset($_GET['user']) && $_GET['user'] == $id) { if (isset($_GET['user']) && $_GET['user'] == $id) {
echo 'selected="selected"'; echo 'selected="selected"';
} }
@ -425,7 +427,8 @@ class SurveyUtil
survey_question.question_id = survey_question_option.question_id AND survey_question.question_id = survey_question_option.question_id AND
survey_question_option.c_id = $course_id survey_question_option.c_id = $course_id
WHERE WHERE
survey_question.survey_id = '".intval($_GET['survey_id'])."' AND survey_question NOT LIKE '%{{%' AND
survey_question.survey_id = '".$surveyId."' AND
survey_question.c_id = $course_id survey_question.c_id = $course_id
ORDER BY survey_question.sort, survey_question_option.sort ASC"; ORDER BY survey_question.sort, survey_question_option.sort ASC";
$result = Database::query($sql); $result = Database::query($sql);
@ -445,7 +448,7 @@ class SurveyUtil
$sql = "SELECT * FROM $table_survey_answer $sql = "SELECT * FROM $table_survey_answer
WHERE WHERE
c_id = $course_id AND c_id = $course_id AND
survey_id = '".intval($_GET['survey_id'])."' AND survey_id = '".$surveyId."' AND
user = '".Database::escape_string($_GET['user'])."'"; user = '".Database::escape_string($_GET['user'])."'";
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result, 'ASSOC')) { while ($row = Database::fetch_array($result, 'ASSOC')) {
@ -577,6 +580,7 @@ class SurveyUtil
WHERE WHERE
c_id = $course_id AND c_id = $course_id AND
survey_id='".$surveyId."' AND survey_id='".$surveyId."' AND
survey_question NOT LIKE '%{{%' AND
type <>'pagebreak' type <>'pagebreak'
ORDER BY sort ASC ORDER BY sort ASC
$limitStatement"; $limitStatement";
@ -957,8 +961,9 @@ class SurveyUtil
LEFT JOIN $table_survey_question_option o LEFT JOIN $table_survey_question_option o
ON q.question_id = o.question_id AND q.c_id = o.c_id ON q.question_id = o.question_id AND q.c_id = o.c_id
WHERE WHERE
survey_question NOT LIKE '%{{%' AND
q.survey_id = '".$surveyId."' AND q.survey_id = '".$surveyId."' AND
q.c_id = $course_id q.c_id = $course_id
GROUP BY q.question_id GROUP BY q.question_id
ORDER BY q.sort ASC"; ORDER BY q.sort ASC";
$result = Database::query($sql); $result = Database::query($sql);
@ -1016,6 +1021,7 @@ class SurveyUtil
LEFT JOIN $table_survey_question_option sqo LEFT JOIN $table_survey_question_option sqo
ON sq.question_id = sqo.question_id AND sq.c_id = sqo.c_id ON sq.question_id = sqo.question_id AND sq.c_id = sqo.c_id
WHERE WHERE
survey_question NOT LIKE '%{{%' AND
sq.survey_id = '".$surveyId."' AND sq.survey_id = '".$surveyId."' AND
sq.c_id = $course_id sq.c_id = $course_id
ORDER BY sq.sort ASC, sqo.sort ASC"; ORDER BY sq.sort ASC, sqo.sort ASC";
@ -1210,17 +1216,16 @@ class SurveyUtil
*/ */
public static function export_complete_report($survey_data, $user_id = 0) public static function export_complete_report($survey_data, $user_id = 0)
{ {
// Database table definitions
$table_survey_question = Database::get_course_table(TABLE_SURVEY_QUESTION);
$table_survey_question_option = Database::get_course_table(TABLE_SURVEY_QUESTION_OPTION);
$table_survey_answer = Database::get_course_table(TABLE_SURVEY_ANSWER);
$surveyId = isset($_GET['survey_id']) ? (int) $_GET['survey_id'] : 0; $surveyId = isset($_GET['survey_id']) ? (int) $_GET['survey_id'] : 0;
if (empty($surveyId)) { if (empty($surveyId)) {
return false; return false;
} }
$table_survey_question = Database::get_course_table(TABLE_SURVEY_QUESTION);
$table_survey_question_option = Database::get_course_table(TABLE_SURVEY_QUESTION_OPTION);
$table_survey_answer = Database::get_course_table(TABLE_SURVEY_ANSWER);
// The first column // The first column
$return = ';'; $return = ';';
@ -1245,12 +1250,17 @@ class SurveyUtil
count(options.question_option_id) as number_of_options count(options.question_option_id) as number_of_options
FROM $table_survey_question questions FROM $table_survey_question questions
LEFT JOIN $table_survey_question_option options LEFT JOIN $table_survey_question_option options
ON questions.question_id = options.question_id AND options.c_id = questions.c_id ON
questions.question_id = options.question_id AND
options.c_id = questions.c_id
WHERE WHERE
questions.survey_id = '".$surveyId."' AND survey_question NOT LIKE '%{{%' AND
questions.type <> 'pagebreak' AND
questions.survey_id = $surveyId AND
questions.c_id = $course_id questions.c_id = $course_id
GROUP BY questions.question_id GROUP BY questions.question_id
ORDER BY questions.sort ASC"; ORDER BY questions.sort ASC";
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
// We show the questions if // We show the questions if
@ -1261,26 +1271,24 @@ class SurveyUtil
is_array($_POST['questions_filter']) && is_array($_POST['questions_filter']) &&
in_array($row['question_id'], $_POST['questions_filter'])) in_array($row['question_id'], $_POST['questions_filter']))
) { ) {
// We do not show comment and pagebreak question types if ($row['number_of_options'] == 0) {
if ($row['type'] != 'pagebreak') { $return .= str_replace(
if ($row['number_of_options'] == 0 && ($row['type'] == 'open' || $row['type'] == 'comment')) { "\r\n",
' ',
api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES)
)
.';';
} else {
for ($ii = 0; $ii < $row['number_of_options']; $ii++) {
$return .= str_replace( $return .= str_replace(
"\r\n", "\r\n",
' ', ' ',
api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES) api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES)
) )
.';'; .';';
} else {
for ($ii = 0; $ii < $row['number_of_options']; $ii++) {
$return .= str_replace(
"\r\n",
' ',
api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES)
)
.';';
}
} }
} }
} }
} }
@ -1300,7 +1308,7 @@ class SurveyUtil
} }
} }
$sql = "SELECT $sql = "SELECT DISTINCT
survey_question.question_id, survey_question.question_id,
survey_question.survey_id, survey_question.survey_id,
survey_question.survey_question, survey_question.survey_question,
@ -1312,11 +1320,13 @@ class SurveyUtil
survey_question_option.sort as option_sort survey_question_option.sort as option_sort
FROM $table_survey_question survey_question FROM $table_survey_question survey_question
LEFT JOIN $table_survey_question_option survey_question_option LEFT JOIN $table_survey_question_option survey_question_option
ON ON
survey_question.question_id = survey_question_option.question_id AND survey_question.question_id = survey_question_option.question_id AND
survey_question_option.c_id = survey_question.c_id survey_question_option.c_id = survey_question.c_id
WHERE WHERE
survey_question.survey_id = '".$surveyId."' AND survey_question NOT LIKE '%{{%' AND
survey_question.type <> 'pagebreak' AND
survey_question.survey_id = $surveyId AND
survey_question.c_id = $course_id survey_question.c_id = $course_id
ORDER BY survey_question.sort ASC, survey_question_option.sort ASC"; ORDER BY survey_question.sort ASC, survey_question_option.sort ASC";
$result = Database::query($sql); $result = Database::query($sql);
@ -1331,30 +1341,35 @@ class SurveyUtil
in_array($row['question_id'], $_POST['questions_filter']) in_array($row['question_id'], $_POST['questions_filter'])
) )
) { ) {
// We do not show comment and pagebreak question types $row['option_text'] = str_replace(["\r", "\n"], ['', ''], $row['option_text']);
if ($row['type'] != 'pagebreak') { $return .= api_html_entity_decode(strip_tags($row['option_text']), ENT_QUOTES).';';
$row['option_text'] = str_replace(["\r", "\n"], ['', ''], $row['option_text']); $possible_answers[$row['question_id']][$row['question_option_id']] = $row['question_option_id'];
$return .= api_html_entity_decode(strip_tags($row['option_text']), ENT_QUOTES).';'; $possible_answers_type[$row['question_id']] = $row['type'];
$possible_answers[$row['question_id']][$row['question_option_id']] = $row['question_option_id'];
$possible_answers_type[$row['question_id']] = $row['type'];
}
} }
} }
$return .= "\n"; $return .= "\n";
// Getting all the answers of the users // Getting all the answers of the users
$old_user = ''; $old_user = '';
$answers_of_user = []; $answers_of_user = [];
$sql = "SELECT * FROM $table_survey_answer $sql = "SELECT * FROM $table_survey_answer
WHERE c_id = $course_id AND survey_id='".$surveyId."'"; WHERE
c_id = $course_id AND
survey_id='".$surveyId."'
";
if ($user_id != 0) { if ($user_id != 0) {
$sql .= "AND user='".Database::escape_string($user_id)."' "; $sql .= "AND user='".Database::escape_string($user_id)."' ";
} }
$sql .= "ORDER BY user ASC"; $sql .= ' ORDER BY user ASC ';
$questionIdList = array_keys($possible_answers_type);
$open_question_iterator = 1; $open_question_iterator = 1;
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result, 'ASSOC')) {
if (!in_array($row['question_id'], $questionIdList)) {
continue;
}
if ($old_user != $row['user'] && $old_user != '') { if ($old_user != $row['user'] && $old_user != '') {
$return .= self::export_complete_report_row( $return .= self::export_complete_report_row(
$survey_data, $survey_data,
@ -1365,6 +1380,7 @@ class SurveyUtil
); );
$answers_of_user = []; $answers_of_user = [];
} }
if ($possible_answers_type[$row['question_id']] == 'open' || if ($possible_answers_type[$row['question_id']] == 'open' ||
$possible_answers_type[$row['question_id']] == 'comment' $possible_answers_type[$row['question_id']] == 'comment'
) { ) {
@ -1376,6 +1392,7 @@ class SurveyUtil
} }
$old_user = $row['user']; $old_user = $row['user'];
} }
// This is to display the last user // This is to display the last user
$return .= self::export_complete_report_row( $return .= self::export_complete_report_row(
$survey_data, $survey_data,
@ -1535,8 +1552,12 @@ class SurveyUtil
count(options.question_option_id) as number_of_options count(options.question_option_id) as number_of_options
FROM $table_survey_question questions FROM $table_survey_question questions
LEFT JOIN $table_survey_question_option options LEFT JOIN $table_survey_question_option options
ON questions.question_id = options.question_id AND options.c_id = questions.c_id ON
questions.question_id = options.question_id AND
options.c_id = questions.c_id
WHERE WHERE
survey_question NOT LIKE '%{{%' AND
questions.type <> 'pagebreak' AND
questions.survey_id = $surveyId AND questions.survey_id = $surveyId AND
questions.c_id = $course_id questions.c_id = $course_id
GROUP BY questions.question_id GROUP BY questions.question_id
@ -1550,9 +1571,20 @@ class SurveyUtil
(isset($_POST['submit_question_filter']) && is_array($_POST['questions_filter']) && (isset($_POST['submit_question_filter']) && is_array($_POST['questions_filter']) &&
in_array($row['question_id'], $_POST['questions_filter'])) in_array($row['question_id'], $_POST['questions_filter']))
) { ) {
// We do not show comment and pagebreak question types if ($row['number_of_options'] == 0 &&
if ($row['type'] != 'pagebreak') { ($row['type'] == 'open' || $row['type'] == 'comment')
if ($row['number_of_options'] == 0 && ($row['type'] == 'open' || $row['type'] == 'comment')) { ) {
$worksheet->setCellValueByColumnAndRow(
$column,
$line,
api_html_entity_decode(
strip_tags($row['survey_question']),
ENT_QUOTES
)
);
$column++;
} else {
for ($ii = 0; $ii < $row['number_of_options']; $ii++) {
$worksheet->setCellValueByColumnAndRow( $worksheet->setCellValueByColumnAndRow(
$column, $column,
$line, $line,
@ -1562,20 +1594,9 @@ class SurveyUtil
) )
); );
$column++; $column++;
} else {
for ($ii = 0; $ii < $row['number_of_options']; $ii++) {
$worksheet->setCellValueByColumnAndRow(
$column,
$line,
api_html_entity_decode(
strip_tags($row['survey_question']),
ENT_QUOTES
)
);
$column++;
}
} }
} }
} }
} }
@ -1596,21 +1617,23 @@ class SurveyUtil
// Getting all the questions and options (second line) // Getting all the questions and options (second line)
$sql = "SELECT $sql = "SELECT
survey_question.question_id, survey_question.question_id,
survey_question.survey_id, survey_question.survey_id,
survey_question.survey_question, survey_question.survey_question,
survey_question.display, survey_question.display,
survey_question.sort, survey_question.sort,
survey_question.type, survey_question.type,
survey_question_option.question_option_id, survey_question_option.question_option_id,
survey_question_option.option_text, survey_question_option.option_text,
survey_question_option.sort as option_sort survey_question_option.sort as option_sort
FROM $table_survey_question survey_question FROM $table_survey_question survey_question
LEFT JOIN $table_survey_question_option survey_question_option LEFT JOIN $table_survey_question_option survey_question_option
ON ON
survey_question.question_id = survey_question_option.question_id AND survey_question.question_id = survey_question_option.question_id AND
survey_question_option.c_id = survey_question.c_id survey_question_option.c_id = survey_question.c_id
WHERE WHERE
survey_question NOT LIKE '%{{%' AND
survey_question.type <> 'pagebreak' AND
survey_question.survey_id = $surveyId AND survey_question.survey_id = $surveyId AND
survey_question.c_id = $course_id survey_question.c_id = $course_id
ORDER BY survey_question.sort ASC, survey_question_option.sort ASC"; ORDER BY survey_question.sort ASC, survey_question_option.sort ASC";
@ -1625,20 +1648,17 @@ class SurveyUtil
(isset($_POST['questions_filter']) && is_array($_POST['questions_filter']) && (isset($_POST['questions_filter']) && is_array($_POST['questions_filter']) &&
in_array($row['question_id'], $_POST['questions_filter'])) in_array($row['question_id'], $_POST['questions_filter']))
) { ) {
// We do not show comment and pagebreak question types $worksheet->setCellValueByColumnAndRow(
if ($row['type'] != 'pagebreak') { $column,
$worksheet->setCellValueByColumnAndRow( $line,
$column, api_html_entity_decode(
$line, strip_tags($row['option_text']),
api_html_entity_decode( ENT_QUOTES
strip_tags($row['option_text']), )
ENT_QUOTES );
) $possible_answers[$row['question_id']][$row['question_option_id']] = $row['question_option_id'];
); $possible_answers_type[$row['question_id']] = $row['type'];
$possible_answers[$row['question_id']][$row['question_option_id']] = $row['question_option_id']; $column++;
$possible_answers_type[$row['question_id']] = $row['type'];
$column++;
}
} }
} }
@ -1652,7 +1672,7 @@ class SurveyUtil
if ($user_id != 0) { if ($user_id != 0) {
$sql .= " AND user='".intval($user_id)."' "; $sql .= " AND user='".intval($user_id)."' ";
} }
$sql .= " ORDER BY user ASC"; $sql .= ' ORDER BY user ASC';
$open_question_iterator = 1; $open_question_iterator = 1;
$result = Database::query($sql); $result = Database::query($sql);
@ -1673,7 +1693,9 @@ class SurveyUtil
$line++; $line++;
$column = 0; $column = 0;
} }
if ($possible_answers_type[$row['question_id']] == 'open' || $possible_answers_type[$row['question_id']] == 'comment') { if ($possible_answers_type[$row['question_id']] == 'open' ||
$possible_answers_type[$row['question_id']] == 'comment'
) {
$temp_id = 'open'.$open_question_iterator; $temp_id = 'open'.$open_question_iterator;
$answers_of_user[$row['question_id']][$temp_id] = $row; $answers_of_user[$row['question_id']][$temp_id] = $row;
$open_question_iterator++; $open_question_iterator++;
@ -1843,6 +1865,13 @@ class SurveyUtil
$optionsY = ['----']; $optionsY = ['----'];
$defaults = []; $defaults = [];
foreach ($questions as $key => &$question) { foreach ($questions as $key => &$question) {
// Ignored tagged questions
if ($question) {
if (strpos($question['question'], '{{') !== false) {
$question = null;
continue;
}
}
if (is_array($allowed_question_types)) { if (is_array($allowed_question_types)) {
if (in_array($question['type'], $allowed_question_types)) { if (in_array($question['type'], $allowed_question_types)) {
if (isset($_GET['xaxis']) && $_GET['xaxis'] == $question['question_id']) { if (isset($_GET['xaxis']) && $_GET['xaxis'] == $question['question_id']) {
@ -1853,8 +1882,8 @@ class SurveyUtil
$defaults['yaxis'] = $question['question_id']; $defaults['yaxis'] = $question['question_id'];
} }
$optionsX[$question['question_id']] = api_substr(strip_tags($question['question']), 0, 50); $optionsX[$question['question_id']] = api_substr(strip_tags($question['question']), 0, 90);
$optionsY[$question['question_id']] = api_substr(strip_tags($question['question']), 0, 50); $optionsY[$question['question_id']] = api_substr(strip_tags($question['question']), 0, 90);
} }
} }
} }
@ -2053,9 +2082,9 @@ class SurveyUtil
$table_survey_answer = Database::get_course_table(TABLE_SURVEY_ANSWER); $table_survey_answer = Database::get_course_table(TABLE_SURVEY_ANSWER);
$sql = "SELECT * FROM $table_survey_answer $sql = "SELECT * FROM $table_survey_answer
WHERE WHERE
c_id = $course_id AND c_id = $course_id AND
survey_id='".intval($survey_id)."' AND survey_id='".intval($survey_id)."' AND
question_id='".intval($question_id)."' question_id='".intval($question_id)."'
ORDER BY USER ASC"; ORDER BY USER ASC";
$result = Database::query($sql); $result = Database::query($sql);
@ -2308,7 +2337,7 @@ class SurveyUtil
) { ) {
$insertId = Database::insert($table, $params); $insertId = Database::insert($table, $params);
if ($insertId) { if ($insertId) {
$sql = "UPDATE $table $sql = "UPDATE $table
SET survey_invitation_id = $insertId SET survey_invitation_id = $insertId
WHERE iid = $insertId"; WHERE iid = $insertId";
Database::query($sql); Database::query($sql);
@ -3095,9 +3124,9 @@ class SurveyUtil
ON (survey.author = user.user_id) ON (survey.author = user.user_id)
WHERE survey.c_id = $course_id WHERE survey.c_id = $course_id
$search_restriction $search_restriction
$condition_session $condition_session
GROUP BY survey.survey_id GROUP BY survey.survey_id
ORDER BY col$column $direction ORDER BY col$column $direction
LIMIT $from,$number_of_items LIMIT $from,$number_of_items
"; ";
$res = Database::query($sql); $res = Database::query($sql);
@ -3213,11 +3242,11 @@ class SurveyUtil
$efv = new ExtraFieldValue('survey'); $efv = new ExtraFieldValue('survey');
$sql = " $sql = "
SELECT SELECT
survey.survey_id AS col0, survey.survey_id AS col0,
survey.title AS col1, survey.title AS col1,
survey.code AS col2, survey.code AS col2,
count(survey_question.question_id) AS col3, count(survey_question.question_id) AS col3,
" "
.(api_is_western_name_order() .(api_is_western_name_order()
? "CONCAT(user.firstname, ' ', user.lastname)" ? "CONCAT(user.firstname, ' ', user.lastname)"
@ -3304,16 +3333,16 @@ class SurveyUtil
$filterDate = $allowSurveyAvailabilityDatetime ? $now->format('Y-m-d H:i') : $now->format('Y-m-d'); $filterDate = $allowSurveyAvailabilityDatetime ? $now->format('Y-m-d H:i') : $now->format('Y-m-d');
$sql = "SELECT * $sql = "SELECT *
FROM $table_survey survey FROM $table_survey survey
INNER JOIN INNER JOIN
$table_survey_invitation survey_invitation $table_survey_invitation survey_invitation
ON ( ON (
survey.code = survey_invitation.survey_code AND survey.code = survey_invitation.survey_code AND
survey.c_id = survey_invitation.c_id AND survey.c_id = survey_invitation.c_id AND
survey.session_id = survey_invitation.session_id survey.session_id = survey_invitation.session_id
) )
WHERE WHERE
survey_invitation.user = $user_id AND survey_invitation.user = $user_id AND
survey.avail_from <= '$filterDate' AND survey.avail_from <= '$filterDate' AND
survey.avail_till >= '$filterDate' AND survey.avail_till >= '$filterDate' AND
survey.c_id = $course_id AND survey.c_id = $course_id AND

Loading…
Cancel
Save