<?php $reports_template['exercicesMultiCourses'] = array( 'description' => 'Result of each test per student', 'getSQL' => 'reports_template_exercicesMultiCourses_getSQL', 'wizard' => ' <span id="exercicesMultiCourses" class="step"> <span class="font_normal_07em_black">Result of each test per student</span><br /> <!-- <label for="scoremin">Score min</label><br /> <input class="input_field_25em" name="scoremin" id="scoremin" value="0"><br /> <label for="scoremax">Score max</label><br /> <input class="input_field_25em" name="scoremax" id="scoremax" value="0"><br /> --> <label for="tattempt">How to treat Attempts</label><br /> <select name="tattempt" id="tattempt"> <!-- <option value="first">take only the first one</option> <option value="last">take only the last one</option> --> <option value="avg">take the average value</option> <option value="min">take the minimum value</option> <option value="max">take the maximum value</option> </select><br /> <!-- <label name="gcourses">Do you want to group quiz per courses</label><br /> <select name="gcourses" id="gcourses"> <option value="nogroup">Do not group</option> <option value="average">group and take the average value</option> <option value="min">group and take the minimum value</option> <option value="max">group and take the maximum value</option> </select><br /> --> <input type="hidden" class="link" value="format" /> </span> '); function reports_template_exercicesMultiCourses_getSQL() { // foreach quiz $result = array(); $columns = Database::query('select r.id as kid, c.title as course, '. 'r.child_name as test from '. Database::get_main_table(TABLE_MAIN_REPORTS_KEYS).' r, '. Database::get_main_table(TABLE_MAIN_COURSE).' c '. 'where r.course_id=c.id and r.tool_id='. reports_getToolId(TOOL_QUIZ). ' order by r.course_id, r.child_name'); if (Database::num_rows($columns) == 0) die('<b>'.get_lang('no data found').'</b>'); $query = 'select u.lastname Name, u.firstname Firstname'; $columns = Database::store_result($columns); if ($_REQUEST['tattempt'] == 'min' || $_REQUEST['tattempt'] == 'max') $function = $_REQUEST['tattempt']; else $function = 'avg'; foreach ($columns as $key => $column) $query .= ', '.$function.'(k'.$key.'.score) as `'. $column['course'].' - '. $column['test'].'` '; $query .= ' from '.Database::get_main_table(TABLE_MAIN_USER).' u '; foreach ($columns as $key => $column) // fixme sessions $query .= 'left outer join '. Database::get_main_table(TABLE_MAIN_REPORTS_VALUES). ' k'.$key. ' on k'.$key.'.key_id = '.$column['kid']. ' and k'.$key.'.user_id = u.user_id '; $query .= ' group by '; foreach ($columns as $key => $column) // grouping attempt $query .= 'k'.$key.'.attempt, '; $query = substr($query, 0, -2); // removing last ', '; return $query; }