如何获取moodle中最受欢迎的课程列表
How to get list of most popular courses in moodle
有没有办法在moodle中显示最受欢迎的课程和类别列表。是否有任何内置插件,或者只能通过编写自定义代码来完成。
你如何定义最受欢迎?有报名人数这可能是定义最受欢迎的最有用的方式。
SELECT COUNT(*) AS enrolments, c.id, c.fullname
FROM mdl_course c
JOIN (SELECT DISTINCT e.courseid, ue.id AS userid
FROM mdl_user_enrolments ue
JOIN mdl_enrol e ON e.id = ue.enrolid) ue ON ue.courseid = c.id
GROUP BY c.id, c.fullname
ORDER BY 1 DESC, c.fullname
更新:
在 Moodle 中使用这个
$sql = "SELECT c.id, c.fullname, COUNT(*) AS enrolments
FROM mdl_course c
JOIN (SELECT DISTINCT e.courseid, ue.id AS userid
FROM {user_enrolments} ue
JOIN {enrol} e ON e.id = ue.enrolid) ue ON ue.courseid = c.id
GROUP BY c.id, c.fullname
ORDER BY 3 DESC, c.fullname";
$course = $DB->get_record_sql($sql, array(), IGNORE_MULTIPLE);
echo $course->fullname;
有没有办法在moodle中显示最受欢迎的课程和类别列表。是否有任何内置插件,或者只能通过编写自定义代码来完成。
你如何定义最受欢迎?有报名人数这可能是定义最受欢迎的最有用的方式。
SELECT COUNT(*) AS enrolments, c.id, c.fullname
FROM mdl_course c
JOIN (SELECT DISTINCT e.courseid, ue.id AS userid
FROM mdl_user_enrolments ue
JOIN mdl_enrol e ON e.id = ue.enrolid) ue ON ue.courseid = c.id
GROUP BY c.id, c.fullname
ORDER BY 1 DESC, c.fullname
更新:
在 Moodle 中使用这个
$sql = "SELECT c.id, c.fullname, COUNT(*) AS enrolments
FROM mdl_course c
JOIN (SELECT DISTINCT e.courseid, ue.id AS userid
FROM {user_enrolments} ue
JOIN {enrol} e ON e.id = ue.enrolid) ue ON ue.courseid = c.id
GROUP BY c.id, c.fullname
ORDER BY 3 DESC, c.fullname";
$course = $DB->get_record_sql($sql, array(), IGNORE_MULTIPLE);
echo $course->fullname;