Contaje de mensajes de foros a nivel de tabla

Contaje de mensajes de foros a nivel de tabla

de Luis Fernando Ortiz Giménez -
Número de respuestas: 3

Hola buenos días, soy Luis (novato) admin de Moodle, tengo un usuario que me ha pedido varias cifras (contaje) sobre los mensajes enviados en foros de diferentes cursos.  En un primer tanteo, esta sql me está dando cifras que luego comparando con las que veo en un foro de un curso de los que me muestra no me cuadran, y me estoy devanando la cabeza con la cuestión, me da la impresión que me he dejado de contar en alguna tabla pero no encuentro cual.  Mi versión es Moodle 3.9 con Mysql, y esta es la sql:

select count(*) as cantidad,mfd.forum as idForo,mf.name as nombreForo,mfd.course as curso, mc.fullname as nombreCurso from mdl_forum_discussions mfd
    join mdl_forum mf on mfd.forum = mf.id
    join mdl_course mc on mfd.course = mc.id
    group by curso,idForo;

Espero vuestras noticias y recibir mi agradecimiento por anticipado




Promedio de valoraciones: -
En respuesta a Luis Fernando Ortiz Giménez

Re: Contaje de mensajes de foros a nivel de tabla

de Franco Pantoja -
Imagen de Moodlers de gran ayuda
Buenas

La relación de tablas es

{forum} referencia al curso
{forum_discussions} referencia al foro, hilos de conversación
{post}, entradas, o mensajes publicados

De manera más académica puedes hacer uso del método, indicándo el id del user y array de curseos

function forum_get_posts_by_user($user, array $courses, $musthaveaccess = false, $discussionsonly = false, $limitfrom = 0, $limitnum = 50) { }

Saludos!!


En respuesta a Franco Pantoja

Re: Contaje de mensajes de foros a nivel de tabla

de Luis Fernando Ortiz Giménez -

Muchas gracias compañero, con tu orientación la sql que mostré en el otro mensaje, queda como esta, que si me da mucha más información:

select mc.fullname as nombreCurso,mf2.name as nombreForo,mfp.* from mdl_forum_posts  mfp
     join mdl_forum_discussions mf on mfp.discussion = mf.id
     join mdl_forum mf2 on mf.forum = mf2.id
     join mdl_course mc on mf2.course = mc.id ;

Donde en primer lugar, los registros de respuesta cuadran, y además informo del curso y el nombre del foro.

Un saludo y mil gracias..