From d2097020b48b906162488b9f18364872400f3cce Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Tue, 18 Mar 2014 11:08:29 +0800 Subject: [PATCH] MDL-44524 feedback: fix bug in sql under oracle Thanks to Rob King" --- mod/feedback/lib.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index 177b8c018d3..87f51f6f1c1 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -2409,36 +2409,43 @@ function feedback_get_group_values($item, //if the groupid is given? if (intval($groupid) > 0) { + $params = array(); if ($ignore_empty) { - $ignore_empty_select = "AND fbv.value != '' AND fbv.value != '0'"; + $value = $DB->sql_compare_text('fbv.value'); + $ignore_empty_select = "AND $value != :emptyvalue AND $value != :zerovalue"; + $params += array('emptyvalue' => '', 'zerovalue' => '0'); } else { $ignore_empty_select = ""; } $query = 'SELECT fbv . * FROM {feedback_value} fbv, {feedback_completed} fbc, {groups_members} gm - WHERE fbv.item = ? + WHERE fbv.item = :itemid AND fbv.completed = fbc.id AND fbc.userid = gm.userid '.$ignore_empty_select.' - AND gm.groupid = ? + AND gm.groupid = :groupid ORDER BY fbc.timemodified'; - $values = $DB->get_records_sql($query, array($item->id, $groupid)); + $params += array('itemid' => $item->id, 'groupid' => $groupid); + $values = $DB->get_records_sql($query, $params); } else { + $params = array(); if ($ignore_empty) { - $ignore_empty_select = "AND value != '' AND value != '0'"; + $value = $DB->sql_compare_text('value'); + $ignore_empty_select = "AND $value != :emptyvalue AND $value != :zerovalue"; + $params += array('emptyvalue' => '', 'zerovalue' => '0'); } else { $ignore_empty_select = ""; } if ($courseid) { - $select = "item = ? AND course_id = ? ".$ignore_empty_select; - $params = array($item->id, $courseid); + $select = "item = :itemid AND course_id = :courseid ".$ignore_empty_select; + $params += array('itemid' => $item->id, 'courseid' => $courseid); $values = $DB->get_records_select('feedback_value', $select, $params); } else { - $select = "item = ? ".$ignore_empty_select; - $params = array($item->id); + $select = "item = :itemid ".$ignore_empty_select; + $params += array('itemid' => $item->id); $values = $DB->get_records_select('feedback_value', $select, $params); } }