Quando esse erro ocorre:
Encontrado mais de um registro no fetch() !
Rastreamento de pilha:
-
line 163 of /lib/grade/grade_object.php: moodle_exception thrown
-
line 367 of /lib/grade/grade_item.php: call to grade_object::fetch_helper()
-
line 1200 of /lib/grade/grade_item.php: call to grade_item::fetch()
-
line 447 of /lib/gradelib.php: call to grade_item::fetch_course_item()
-
line 127 of /mod/quiz/view.php: call to grade_get_grades()
Os comandos SQL a seguir ajudam mapear a situação
Mapear cursos com duplicação de itens de avaliação referente a nota final
SELECT i.courseid,c.fullname,count(i.itemtype) as duplicateitem FROM mdl_grade_items i INNER JOIN mdl_course c ON c.id=i.courseid WHERE i.itemtype='course' GROUP BY i.courseid,c.fullname HAVING count(i.itemtype) > 1
Mapear a duplicação do itens de avaliação final em um curso
SELECT * FROM mdl_grade_items WHERE itemtype='course' AND courseid=?
Se o resultado desse comando trazer mais de um registro, como sinaliza o print a seguir, é sinal que há problema e que um registro precisa ser removido
Mapear categoria de itens de avaliação
SELECT * FROM mdl_grade_categories WHERE courseid=?
O resultado dessa consulta mostra que há mis de uma raiz da categoria de nota no curso. Isso é sinal de problema. Deve existir uma única raiz, esta deve ser veiculada no item de avaliação da nota final no campo iteminstance.
No print apresentado, o registro destacado em verde é o raiz original. Esta deve ser vinculada ao item de avaliação final. O destacado em laranja é a duplicação que deve ser removida.