relacion alumno - curso en la base de datos

Re: relacion alumno - curso en la base de datos

by Miguel Rodríguez -
Number of replies: 2

Hola buenas, tengo un problema relacionado con este foro, necesito hacer una query en la que diciendo un id de usuario me responda con los cursos al que este esta matriculado. Cualquier ayuda es de agradecer puesto que no entiendo bien la estructura de la base de datos y en que punto se relaciona id alumno y curso. Muchas gracias.

In reply to Miguel Rodríguez

Re: relacion alumno - curso en la base de datos

by Miguel Rodríguez -

Mejor aun necesitaria realizar una consulta con username no con id puesto que estoy extrayendo el username de otros servidores moodle, y en cada uno de ellos el id de los usuarios cambia.

 

In reply to Miguel Rodríguez

Re: relacion alumno - curso en la base de datos

by Iñaki Arenaza -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

select c.shortname from mdl_course c join mdl_context ctx on (ctx.instanceid = c.id and ctx.contextlevel=50) join mdl_role_assignments ra on (ra.contextid = ctx.id) join mdl_user u on (ra.userid = u.id) where u.username='YY' and u.mnethostid=XX;

donde YY es el username del usuario a consultar y XX es el valor de $CFG->mnet_localhost_id. La consulta te devuelte el nombre corto de los cursos en los que tiene algún rol asignado. Si necesitas que tenga un rol en concreto, deberás cruzar la tabla mdl_role_assignments con la tabla mdl_role usando la columna roleid de la primera con la columna id de la segunda, e indicando el nombre corto del rol como condición para la coumna shortname de la segunda tabla.

Saludos. Iñaki.