количество пользователей

количество пользователей

от Ботирбек Самандаров -
Количество ответов: 4
Доброе время суток
Недавно начал изучать Moodle
И хотел создать дополнительный модуль мониторинга - показывает количество студентов в курсах, тесты, опросы и так далее
Теперь вот что не могу решат
мне надо такая примерно вот такая инфо
1. Студенты 100
2. Учителя 15
....
1. список пользователей получил вот таким запросом
SELECT * FROM mdl_user WHERE mdl_user.deleted = 0 AND mdl_user.confirmed = 1 ORDER BY mdl_user.username
как теперь уточнит кто есть кто в системе
заранее спасибо за ответь
Приложение opros.jpg
В ответ на Ботирбек Самандаров

Re: количество пользователей

от Evgeniy Schuetz -

Поставьте Configurable Report

http://moodle.org/plugins/view.php?plugin=block_configurable_reports

И там есть куча готовых запросов на странице хелпа под Ваши задачи.

В ответ на Evgeniy Schuetz

Re: количество пользователей

от Ботирбек Самандаров -
Спасибо, очень полезный модуль
В хелпе не смог найти подходящий мне запрос
Если кто то поможет мне выше указанным задачами - буду очень благодарен
В ответ на Ботирбек Самандаров

Re: количество пользователей

от Ботирбек Самандаров -
SELECT DISTINCT 
  mdl_role.name,
  mdl_user.username,
  mdl_user.firstname,
  mdl_user.lastname
FROM mdl_role_assignments
INNER JOIN mdl_role ON (mdl_role_assignments.roleid = mdl_role.id)
INNER JOIN mdl_user ON (mdl_role_assignments.userid = mdl_user.id)
WHERE mdl_user.deleted = 0 AND mdl_user.confirmed = 1
ORDER BY mdl_user.username

вот с этим запросом уточнил кто есть кто в системе - но количество записей не совпадает с количеством записей запроса
SELECT DISTINCT * FROM mdl_user WHERE mdl_user.deleted = 0 AND mdl_user.confirmed = 1 ORDER BY mdl_user.username
В ответ на Ботирбек Самандаров

Re: количество пользователей

от Vadim Tabunshchik -
Изображение пользователя Developers

количество записей не совпадает с количеством записей запроса

Вторым запросом вы получаете "чистый" список подтвержденных пользователей сайта, без удаленных.

Первый же запрос выводит список всех ролей тех же пользователей сайта. Разницу заметили?

Поэтому результат в большинстве случаев не совпадёт, т. к. одному пользователю могут быть назначены несколько ролей, причем в разных контекстах системы (главная страница сайта, курс, категория курса, модуль, блок). Просмотрите результат первого запроса на предмет повторяющихся ФИО пользователей, наверняка такие есть.

Чтобы уточнить, кому какая роль и где назначена, нужно подключать ещё несколько таблиц - mdl_context, mdl_course, может ещё mdl_course_categories.

Для примера  - запрос, показывающий пользователей с ролью студента во всех курсах:

SELECT cr.fullname AS `НАЗВАНИЕ КУРСА`, u.lastname AS `ФАМИЛИЯ`, u.firstname AS `ИМЯ`
FROM mdl_user AS u, mdl_role AS r, mdl_role_assignments AS ra, mdl_context AS cn, mdl_course AS cr
WHERE ra.userid = u.id
AND ra.roleid = r.id
AND cn.id = ra.contextid
AND cr.id = cn.instanceid
AND r.id = 5
ORDER BY cr.fullname ASC, u.lastname ASC