CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de David Mesa -
Número de respuestas: 7

BUENAS TARDES COMUNIDAD MOODLE.

Me gustaría saber como puedo desarrollar una consulta SQL para mostrar los datos de los profesores que ingresan cada mes al moodle.

Ejemplo que me muestre los profesores o usurios que ingresaron en el mes de febrero.

Estoy trabajando con la herramienta PhpMyAdmin en esa base de datos tengo las tablas de moodle.

Les agradecería su gran ayuda.


Promedio de valoraciones: -
En respuesta a David Mesa

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de Franco Pantoja -
Imagen de Moodlers de gran ayuda

Buenas Jose David

Primero necesitamos saber los Profesores del curso. Podemos utilizar esta query

SELECT usr.id, usr.firstname, usr.lastname, usr.email, c.fullname
              FROM {course} c
              INNER JOIN {context} cx ON c.id = cx.instanceid
              AND cx.contextlevel = '50' and c.id='".$mycourse."'
              INNER JOIN {role_assignments} ra ON cx.id = ra.contextid
              INNER JOIN {role} r ON ra.roleid = r.id
              INNER JOIN {user} usr ON ra.userid = usr.id
              WHERE r.id = '".$myrole."'
              ORDER BY usr.lastname, c.fullname
$mycourse será el id del curso, y $myrole el role asignado, de acuerdo con la talba {role}, parece que en tu caso encajaría el roleid 4

Después nos interesaría la tabla {logstore_standard_log}, aquí lanzamos la consulta con los campos que nos interesan

userid

timecreated (entre las fechas que te interesen en timestamp)

realuserid = NULL, para evitar logs cuando se ha utilizado el entrar como


Espero que pueda serte útil


Saludos!!

En respuesta a David Mesa

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de Eduardo Hm -

Buenas tardes compañero,


A ver si te sirve esta consulta que es la que mas o menos suelo utilizar yo. Moodle dispone de una tabla que se llama "mdl_user_lastaccess" en la cual te da información de fecha de acceso de usuarios y cursos del ultimo acceso de un usuario determinado.


En base a ello, se puede montar la siguiente URL:

select (select firstname || ' ' || lastname from mdl_user where id = userid)

from mdl_user_lastaccess

where to_char(to_timestamp(timeaccess), 'YYYY-MM-DD') BETWEEN '2015-12-01' AND '2015-12-31'

En la cual en la clausula WHERE indicas el rango de fechas en las cuales quieres coger la información.


Espero que te sirva de ayuda.


Saludos cordiales.

En respuesta a Eduardo Hm

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de David Mesa -

Hola Paco Franco muchas gracias por responderme.

modifique la consulta pues los nombres de las tablas son diferentes a las tuyas

SELECT usr.id, usr.firstname, usr.lastname, usr.email, c.fullname 
FROM mdl_course c 
INNER JOIN mdl_context cx ON c.id = cx.instanceid 
AND cx.contextlevel = '50' and c.id='".$mycourse."' 
INNER JOIN mdl_role_assignments ra ON cx.id = ra.contextid
INNER JOIN mdl_role r ON ra.roleid = r.id INNER JOIN mdl_user usr ON ra.userid = usr.id 
WHERE r.id = '".$myrole."' ORDER BY usr.lastname, c.fullname

pero al darle continuar no me bota ningún dato no se que puede ser agradecería tu ayuda.


Adjunto Captura.PNG
En respuesta a David Mesa

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de Franco Pantoja -
Imagen de Moodlers de gran ayuda

Buenas

prueba con introducir el id (un número ) en el campo que señalamos como c.id

Esto lo recuperamos de la url del curso, pejemplo www.mymoodle/course/view.php?id=26

SELECT usr.id, usr.firstname, usr.lastname, usr.email, c.fullname 
FROM mdl_course c 
INNER JOIN mdl_context cx ON c.id = cx.instanceid 
AND cx.contextlevel = '50' and c.id= 26 
INNER JOIN mdl_role_assignments ra ON cx.id = ra.contextid
INNER JOIN mdl_role r ON ra.roleid = r.id INNER JOIN mdl_user usr ON ra.userid = usr.id 
WHERE r.id = '".$myrole."' ORDER BY usr.lastname, c.fullname

Saludos!!

En respuesta a Franco Pantoja

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de David Mesa -

Hola Paco 

Gracias por responderme, pues hice lo que me comentaste cambie el =26 por el =45 que es el curso que estoy utilizando -> http://localhost/moodle/course/view.php?id=45 y pues me sale igual no me arroja ningún dato.

Agradecería si tienes otra idea en mente pues en estos dias que han pasado he intentado con otras cosas pero nada triste 

En respuesta a David Mesa

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de Sandra Piedrabuena -

Hola Jose David. 

Para conocer la actividad del campus se lee el log.

Utilizo de base el siguiente enlace:

https://docs.moodle.org/27/en/ad-hoc_contributed_reports

Y luego adapto a lo que necesito.sonrisa

Saludos

SELECT DATE_FORMAT( FROM_UNIXTIME( l.TIME ), '%Y-%m-%d' ) AS fecha,
l.userid AS userid, u.lastname AS Apellido, u.firstname AS Nombre
FROM prefix_log AS l
JOIN prefix_user AS u ON u.id = l.userid
JOIN prefix_role_assignments AS ra ON l.userid = ra.userid
JOIN prefix_role AS r ON r.id = ra.roleid
WHERE 
ra.roleid IN (3,4) # (3) editingteacher (4) teacher
AND  l.TIME > 1451606400 #01/01/2016
AND  l.TIME < 1483228800  #31/12/2016
GROUP BY grptimed,l.userid
ORDER BY grptimed desc, 
u.lastname, u.firstname
En respuesta a Sandra Piedrabuena

Re: CONSULTA SQL PARA SABER INGRESO DE PROFESORES CADA MES

de Rachela U -

Hola a todxs!

Necesito un informe de alumnos con el login y el logout de cada día. ¿Tenéis alguna idea de dónde puedo encontrar esto? He estado mirando en registros y en tiempo de dedicación de curso pero no es lo que busco...

Espero vuestra respuesta.

Mil gracias de antemano.

Saludos.