MDL-25708 recordsets - fix completion

This commit is contained in:
Eloy Lafuente (stronk7) 2011-01-02 16:39:29 +01:00
parent b967c54185
commit 419178d713
6 changed files with 38 additions and 45 deletions

View file

@ -228,15 +228,13 @@ class completion_criteria_activity extends completion_criteria {
';
// Loop through completions, and mark as complete
if ($rs = $DB->get_recordset_sql($sql)) {
foreach ($rs as $record) {
$rs = $DB->get_recordset_sql($sql);
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
}
/**

View file

@ -185,14 +185,12 @@ class completion_criteria_course extends completion_criteria {
";
// Loop through completions, and mark as complete
if ($rs = $DB->get_recordset_sql($sql)) {
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
$rs = $DB->get_recordset_sql($sql);
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
}
/**

View file

@ -178,15 +178,12 @@ class completion_criteria_date extends completion_criteria {
';
// Loop through completions, and mark as complete
if ($rs = $DB->get_recordset_sql($sql, array(time()))) {
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timeend);
}
$rs->close();
$rs = $DB->get_recordset_sql($sql, array(time()));
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timeend);
}
$rs->close();
}
/**

View file

@ -219,22 +219,19 @@ class completion_criteria_duration extends completion_criteria {
// Loop through completions, and mark as complete
$now = time();
if ($rs = $DB->get_recordset_sql($sql, array($now, $now))) {
foreach ($rs as $record) {
$rs = $DB->get_recordset_sql($sql, array($now, $now));
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion = new completion_criteria_completion((array)$record);
// Use time start if not 0, otherwise use timeenrolled
if ($record->otimestart) {
$completion->mark_complete($record->ctimestart);
}
else {
$completion->mark_complete($record->ctimeenrolled);
}
// Use time start if not 0, otherwise use timeenrolled
if ($record->otimestart) {
$completion->mark_complete($record->ctimestart);
} else {
$completion->mark_complete($record->ctimeenrolled);
}
$rs->close();
}
$rs->close();
}
/**

View file

@ -214,15 +214,12 @@ class completion_criteria_grade extends completion_criteria {
';
// Loop through completions, and mark as complete
if ($rs = $DB->get_recordset_sql($sql)) {
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
$rs = $DB->get_recordset_sql($sql);
foreach ($rs as $record) {
$completion = new completion_criteria_completion((array)$record);
$completion->mark_complete($record->timecompleted);
}
$rs->close();
}
/**

View file

@ -118,9 +118,12 @@ function completion_cron_mark_started() {
userid
";
// Check if result is empty
$now = time();
if (!$rs = $DB->get_recordset_sql($sql, array($now, $now, $now, $now))) {
$rs = $DB->get_recordset_sql($sql, array($now, $now, $now, $now));
// Check if result is empty
if (!$rs->valid()) {
$rs->close(); // Not going to iterate (but exit), close rs
return;
}
@ -267,8 +270,11 @@ function completion_cron_completions() {
userid
';
$rs = $DB->get_recordset_sql($sql, array('timestarted' => $timestarted));
// Check if result is empty
if (!$rs = $DB->get_recordset_sql($sql, array('timestarted' => $timestarted))) {
if (!$rs->valid()) {
$rs->close(); // Not going to iterate (but exit), close rs
return;
}