mysql - 使用 SQL 取消注册某个类别中的 Moodle 用户

标签 mysql moodle

我需要立即取消注册特定类别所有类(class)的所有用户(选择在我的 moodle 网站中按名称或简称)。 我认为 SQL 语句就是执行此操作的方法。

类(class)不为空,因此无法删除所有类(class)。

谢谢

最佳答案

我没有测试以下解决方案,但它应该会产生预期的效果:

require($CFG->libdir . '/coursecatlib.php');
require($CFG->libdir . '/enrollib.php');

$categoryid = 0;    // Replace with the desired category ID.
$category = coursecat::get($categoryid);
foreach ($category->get_courses() as $course) {
    // Simulates the deletion of the course, a better solution is to copy
    // the logic from `enrol_course_delete` here directly.
    enrol_course_delete($course);
}

上面的脚本可能需要一段时间,因此您可能应该从命令行执行它。

您可以使用以下方法循环子类别:

$categories = $category->get_children();
foreach ($categories as $category) {
}

要按短名称获取类别 ID,请使用以下命令:

$name = "My category";
$categoryid = $DB->get_field('course_categories', 'id', array('name' => $name), MUST_EXIST);

请注意,类别可以具有相同的名称,您应该使用类别idnumber

关于mysql - 使用 SQL 取消注册某个类别中的 Moodle 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39948520/

相关文章:

mysql - Rails - mysql 临时表在不同的 http 请求之间是否可用

php - 为 MySQL 数据库中的重复条目设置警告

php - 如何使用 PHP 和 MySQL 从两个条件链接表中有效地求和和减去

javascript - 刷新数据并在时间间隔后重置倒计时器

javascript - Moodle 3.0 - CSS 和 Javascript 不加载 - 对 NGINX 的请求与真实路径不兼容

php - 检查查询返回的输出是否包含字符串/数字

mysql - 使用 moodle 数据操作 API 从表中获取特定字段

mysql - 使用 sequelize nodejs 仅查询当前月份

php - 通过访问 phpMyAdmin 手动更改 moodle 管理员密码或创建另一个管理员帐户?

php - Moodle session_start 返回 FALSE