]> git.mjollnir.org Git - moodle.git/commitdiff
Alternate method of calculating usercourse logs .... is it faster?
authormartin <martin>
Mon, 2 Sep 2002 15:53:19 +0000 (15:53 +0000)
committermartin <martin>
Mon, 2 Sep 2002 15:53:19 +0000 (15:53 +0000)
course/loggraph.php

index 73ded0d84f65ca61b05ff71454b0368ea9fad03d..a631d08ad25619df12fd15b8f02c4ef1d9374b6f 100644 (file)
        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);