【问题标题】:Moodle Database API error : Get quiz marks for all sections of one course for one userMoodle 数据库 API 错误:为一位用户获取一门课程的所有部分的测验分数
【发布时间】:2015-08-25 03:02:20
【问题描述】:

我正在尝试获取特定用户在该课程所有部分的特定课程中获得的总分。

以下查询可以使用 mysql 并给出正确的结果,但不能使用 Databse API 调用

$sql = "SELECT d.section as section_id,d.name as section_name, sum(a.sumgrades) A​​S 标记来自 mdl_quiz_attempts a, mdl_quiz b, mdl_course_modules c, mdl_course_sections d WHERE a.userid=6 AND b.course =4 AND a.quiz=b.id AND c.instance=a.quiz AND c.module=14 AND a.sumgrades>0 AND d.id=c.section GROUP BY d.section"

我尝试了不同的 API 调用,主要是我想要的

$DB->get_records_sql($sql);

API 调用的结果毫无意义。有什么建议吗?

PS : 这是moodle 2.2。

【问题讨论】:

    标签: moodle


    【解决方案1】:

    我只是尝试做类似的事情,只是没有得到这些部分。您只需要课程和用户 ID。希望对您有所帮助。

    global $DB;
    
    // get all attempts & grades from a user from every quiz of one course 
    $sql = "SELECT qa.id, qa.attempt, qa.quiz, qa.sumgrades AS grade, qa.timefinish, qa.timemodified, q.sumgrades, q.grade AS maxgrade
            FROM {quiz} q, {quiz_attempts} qa
            WHERE q.course=".$courseid."
            AND qa.quiz = q.id
            AND qa.userid = ".$userid."
            AND state = 'finished'
            ORDER BY qa.timefinish ASC"; 
    $exams = $DB->get_records_sql($sql);
    
    // calculate final grades from sum grades
    $grades = array();
    foreach($exams as $exam) {
        $grade = new stdClass;
        $grade->quiz = $exam->quiz;
        $grade->attempt = $exam->attempt;
        // sum to final
        $grade->finalgrade = $exam->grade * ($exam->maxgrade / $exam->sumgrades);
        $grade->grademax = $exam->maxgrade;
        $grade->timemodified = $exam->timemodified;
        array_push($grades, $grade);
    } 
    

    【讨论】:

    • 这与获取特定课程所有部分的成绩总和并不完全相同。我想要每个部分。
    【解决方案2】:

    这适用于最新的moodle版本。穆勒 2.9。尽管我仍然对更好的解决方案持开放态度,因为这确实是一种深入分析用户性能的方法。

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多