Retorna nota da questão do Quiz

Re: Retorna nota da questão do Quiz

por Lino Vaz Moniz -
Número de respostas: 0

Thiago, 

Segue mapeamento de pesquisa que ainda estou fazendo sobre tabelas do quiz. Ainda não está completo. 

Principais Tabelas do Questionário

 

Tabela

Descrição

mdl_question

Armazena as questões

mdl_question_answers

Armazena opções de resposta das questões e gabaritos

mdl_quiz

Armazena os questionários

mdl_quiz_grades 

Armazena nota final do questionário de cada aluno

mdl_quiz_attempts

Armazena as tentativas de cada aluno, registra status  e  a nota final da tentativa

A coluna uniqueid é chave estrangeira da tabela mdl_question_usages que 

mdl_question_states

Armazena as respostas dos alunos

mdl_quiz_slots

Registra as questões que compõem faz referência a tabela mdl_question

mdl_question_attempts

Registra uma cópia das questões alocadas na tentava. Assim, se houver mudança do texto da questão original não impacta no texto original da questão alocada na tentativa

mdl_question_attempt_steps

mdl_question_attempt_step_data

Segue alguns comandos SQL que pode lhe ajudar. São comandos usados no sistema de relatório MReport para montar prova gerado pelo quiz.  Estou estruturando um post que detalhe sobre tudo isso. A descrição dos comandos SQL ainda precisa de revisão. Estou publicando informações que estão ainda em fase de pesquisa. 

Enunciado da cada questão
SELECT qa.questionid,q.qtype,q.questiontext FROM mdl_quiz_attempts qt INNER JOIN mdl_question_attempts qa ON qt.uniqueid=qa.questionusageid INNER JOIN mdl_question q ON qa.questionid=q.id WHERE qt.id=?
Sequência das questões
SELECT qa.questionid,qsd.value AS sequenceresponse FROM mdl_quiz_attempts qt INNER JOIN mdl_question_attempts qa ON qt.uniqueid=qa.questionusageid INNER JOIN mdl_question_attempt_steps qs ON qa.id=qs.questionattemptid INNER JOIN mdl_question_attempt_step_data qsd ON qs.id=qsd.attemptstepid WHERE qsd.name='_order' AND qt.id=?
Alternativa de cada questão
SELECT qw.id,qa.questionid,qw.id AS answerid,qw.answer,qw.fraction FROM mdl_quiz_attempts qt INNER JOIN mdl_question_attempts qa ON qt.uniqueid=qa.questionusageid INNER JOIN mdl_question_answers qw ON qa.questionid=qw.question WHERE qt.id=?
Sequencia da alternativa de resposta de cada questão
SELECT qmc.questionid,qmc.answernumbering FROM mdl_quiz_attempts qt INNER JOIN mdl_question_attempts qa ON qt.uniqueid=qa.questionusageid INNER JOIN mdl_qtype_multichoice_options qmc ON qa.questionid=qmc.questionid WHERE qt.id=?

Passe o parâmetro id da tentativa em qt.id=?