General developer forum

 
 
Picture of Miguel Rodríguez
Re: relacion alumno - curso en la base de datos
 

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.

 
Average of ratings: -
Picture of Miguel Rodríguez
Re: relacion alumno - curso en la base de datos
 

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.

 

 
Average of ratings: -
Picture of Iñaki Arenaza
Re: relacion alumno - curso en la base de datos
Group DevelopersGroup Documentation writersGroup Particularly helpful Moodlers

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.

 
Average of ratings: -