diff --git a/mod/workshop/form/rubric/lib.php b/mod/workshop/form/rubric/lib.php index eb6425d9f8d..d0e26d44af5 100644 --- a/mod/workshop/form/rubric/lib.php +++ b/mod/workshop/form/rubric/lib.php @@ -430,16 +430,17 @@ class workshop_rubric_strategy implements workshop_strategy { protected function load_fields() { global $DB; - $sql = 'SELECT l.id AS lid, r.id AS rid, r.*, l.* + $sql = "SELECT r.id AS rid, r.sort, r.description, r.descriptionformat, + l.id AS lid, l.grade, l.definition, l.definitionformat FROM {workshopform_rubric} r LEFT JOIN {workshopform_rubric_levels} l ON (l.dimensionid = r.id) WHERE r.workshopid = :workshopid - ORDER BY r.sort, l.grade'; + ORDER BY r.sort, l.grade"; $params = array('workshopid' => $this->workshop->id); - $records = $DB->get_records_sql($sql, $params); + $rs = $DB->get_recordset_sql($sql, $params); $fields = array(); - foreach ($records as $record) { + foreach ($rs as $record) { if (!isset($fields[$record->rid])) { $fields[$record->rid] = new stdclass(); $fields[$record->rid]->id = $record->rid; @@ -456,6 +457,8 @@ class workshop_rubric_strategy implements workshop_strategy { $fields[$record->rid]->levels[$record->lid]->definitionformat = $record->definitionformat; } } + $rs->close(); + return $fields; }