Olá Pessoal, tudo bem?
Hoje vou postar aqui uma consulta em SQL que vai retornar os alunos matriculados por curso no Moodle. Uma consulta simples que irá funcionar no MySQL.
SELECT mdl_user.id as ID, upper(CONCAT(mdl_user.firstname,mdl_user.lastname)) as NOME
FROM mdl_role_assignments
JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid
JOIN mdl_context ON mdl_role_assignments.contextid = mdl_context.id
WHERE mdl_role_assignments.roleid = 5 AND mdl_context.contextlevel = 50 AND mdl_context.instanceid = ID_CURSO
ORDER BY firstname
Hoje vou postar aqui uma consulta em SQL que vai retornar os alunos matriculados por curso no Moodle. Uma consulta simples que irá funcionar no MySQL.
SELECT mdl_user.id as ID, upper(CONCAT(mdl_user.firstname,mdl_user.lastname)) as NOME
FROM mdl_role_assignments
JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid
JOIN mdl_context ON mdl_role_assignments.contextid = mdl_context.id
WHERE mdl_role_assignments.roleid = 5 AND mdl_context.contextlevel = 50 AND mdl_context.instanceid = ID_CURSO
ORDER BY firstname
Nessa consulta SQL utilizei as tabelas mdl_user (armazena as informações de usuário como nome, id, e-mail, etc), mdl_role_assignments (armazena as informações da matricula do usuário no curso) e mdl_context (armazena as informações do contexto desse usuário no curso.)
No campo mdl_context.instanceid deverá será ser utilizado o ID DO CURSO.
Para saber qual ID DO CURSO basta fazer um SELECT na tabela mdl_course
SELECT * FROM mdl_course WHERE fullname LIKE "A%"
Os comandos SQL UPPER utilizei para deixar as letras maiúsculas e o CONCAT para concatenar o nome e o sobrenome, já que no Moodle esses campos são separados, em um mesmo campo que chamei apenas de NOME.
É isso aí pessoal! Se gostou, divulgue o POST, comente e contribua. Se não gostou, comente também e vamos juntos melhorar.
Abraço a todos!
Como faço um relatório listando todos os cursos cadastrados no moodle e quantidade de alunos de cada curso?
ResponderExcluirMuito Obrigado pelo acesso ao Blog.
ExcluirBaseado no seu pedido fiz esse Post com Relatório de alunos matriculado em todos os cursos Moodle. Dê uma olhada http://www.marceloalmeida.net/2014/05/relatorio-de-numero-de-alunos.html
Abraços
Olá,
ExcluirMuitíssimo obrigada, me ajudou bastante. Parabéns pelo blog!
Abraços
No caso o sql acima somente lista o nome dos usuários, preciso de um relatório mostrando o nome dos cursos e quantidade de alunos inscritos, se puder ajudar agradeço muito.
ResponderExcluirCara Muito obrigado, se puder faça um relatório do modulo de presença (moodle attendance) seria de grande ajuda tambem. Abraços
ResponderExcluirBom dia!
ResponderExcluirMarcelo gostei muito do seu relatório, estou tentando mostrar também o Nome de usuário e senha e não estou conseguindo eu adaptei da seguinte forma
SELECT mdl_user.id as ID, upper(CONCAT(mdl_user.firstname, mdl_user.lastname, mdl_user.username, mdl_user.password)) as NOME
FROM mdl_role_assignments
JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid
JOIN mdl_context ON mdl_role_assignments.contextid = mdl_context.id
WHERE mdl_role_assignments.roleid = 5 AND mdl_context.contextlevel = 50 AND mdl_context.instanceid = 13
ORDER BY firstname