From: martin Date: Mon, 2 Sep 2002 15:53:19 +0000 (+0000) Subject: Alternate method of calculating usercourse logs .... is it faster? X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e45e8d26da63c137a0adaaa7d4bfef32d11c2089;p=moodle.git Alternate method of calculating usercourse logs .... is it faster? --- diff --git a/course/loggraph.php b/course/loggraph.php index 73ded0d84f..a631d08ad2 100644 --- a/course/loggraph.php +++ b/course/loggraph.php @@ -38,21 +38,28 @@ if ($timenow - $course->startdate > $COURSE_MAX_LOG_DISPLAY) { $course->startdate = $timenow - $COURSE_MAX_LOG_DISPLAY; } - $timestart = usergetmidnight($course->startdate); + $timestart = $coursestart = usergetmidnight($course->startdate); + $i = 0; while ($timestart < $timenow) { - $timefinish = $timestart + (3600 * 24); - if (! $logcount = get_record_sql("SELECT COUNT(*) as count FROM log - WHERE user = '$user->id' AND course = '$course->id' - AND `time` > '$timestart' AND `time` < '$timefinish'")) { - $logs[$i] = 0; - } - $logs[$i] = $logcount->count; + $timefinish = $timestart + 86400; $days[$i] = userdate($timestart, "%a %e %b"); + $logs[$i] = 0; $i++; $timestart = $timefinish; } + if ($rawlogs = get_records_sql("SELECT floor((`time` - $coursestart)/86400) as day, + count(*) as num FROM log + WHERE user = '$user->id' + AND course = '$course->id' + AND `time` > '$coursestart' + GROUP BY day ")) { + foreach ($rawlogs as $rawlog) { + $logs[$rawlog->day] = $rawlog->num; + } + } + $maxlogs = max($logs);