Moodle学生列表与组和课程

时间:2014-06-11 08:29:44

标签: moodle

我正在使用moodle2.4.6。我想要一个用户列表及其组和课程。

2 个答案:

答案 0 :(得分:2)

您需要执行SQL查询才能获取此信息。

假设您使用默认的' mdl _'表的前缀,您需要将以下表连接在一起:

  • mdl_user - 用户的详细信息
  • mdl_user_enrolments - (user_enrolments.userid = user.id)哪些课程注册用户
  • mdl_enrol - (enrol.id = user_enrolments.enrolid)详细信息 注册实例
  • mdl_course - (course.id = enrol.courseid)这些用户加入课程的详细信息
  • mdl_groups_members - (groups_members.userid = user.id)的详细信息 这些用户所在的群组
  • mdl_groups - (groups.id = groups_members.groupid AND groups.courseid = course.id)name and 用户所在群组的描述(针对每门课程)

如果您需要帮助将伪代码转换为实际SQL,或者如果您需要有关Moodle数据库访问API(http://docs.moodle.org/dev/Data_manipulation_API)的帮助,请发表评论

答案 1 :(得分:0)

SELECT
  mdl_user.username,
  mdl_user.firstname,
  mdl_user.lastname,
  mdl_course.fullname,
  mdl_course.idnumber,
  mdl_groups_members.groupid,
  mdl_groups.name
FROM (mdl_groups_members
  INNER JOIN ((mdl_course
    INNER JOIN (mdl_user_enrolments
      INNER JOIN mdl_enrol ON mdl_user_enrolments.enrolid = mdl_enrol.id)
      ON mdl_course.id = mdl_enrol.courseid) INNER JOIN mdl_user ON mdl_user_enrolments.userid = mdl_user.id)
    ON mdl_groups_members.userid = mdl_user.id) INNER JOIN mdl_groups
    ON (mdl_groups.courseid = mdl_course.id) AND (mdl_groups_members.groupid = mdl_groups.id)
WHERE (((mdl_user.username) = "102993") AND ((mdl_course.category) = "36"))