Ola a todos. Estou trabalhando com o recurso quiz.
E tenho um problema, preciso acessar as respostas das questões, uma delas (14 no total) é discursiva.
O problema é que não acho no banco essas respostas apenas quando faço relatório direto pelo moodle.
Procurei em todo o DB mas não achei essas respostas alguém pode me ajudar? Obrigado!
Pesquisando um pouco mais achei a tabela cds_question_states, ela contém todas as respostas, é só pegar o número da tentativa, e o user id e ja da pra fazer um relatório personalizado
Abraços!
Abraços!
Em resposta à rafael paquier
Re: Certos dados que não acho no banco
Rafael, queria poder ter ajudar, mas na verdade eu estou precisando de uma boa ajuda quando ao Banco do Moodle.
Eu utilizava o moodle como estudante e agora estou começando a utilizar como administrador. Estou querendo extrair relatórios através de comando SQL, contudo preciso antes entender o funcionamento do banco de dados.
Saber para onde vai um dado, para onde vai o outro.
Você teria como me ajudar? Você tem algum material que trate disso ou alguns exemplos de select.
Desde já agradeço a ajuda,
Abraços,
Júlio César.
Em resposta à Júlio César Gama Dias da Silva
Re: Certos dados que não acho no banco
por rafael paquier -
Fala Julio! Segue ai umas dicas pra você se achar no banco:
O trecho abaixo seleciona os alunos cadastrados no banco, assim você pode com o próprio php criar uma lista.
"SELECT id, username, firstname, lastname, email, cargo, loja, unidade, tempo_empresa, data_nascimento, lastaccess FROM user where deleted=0 order by id;"
os campos cargo, loja, unidade, tempo_empresa, foram inseridos por mim na tabela USER que registra todos os usuarios. A coluna deleted tem que ser 0, para você não receber alunos que foram deletados dentro do moodle.
Só um detalhe com o lastacess, o moodle grava o epoch e não uma data formatada, então se você quiser exibir o lastacess do aluno, você precisa disso:
$plastaccess=$dados["lastaccess"]; //recebe lastacess
$plastaccess = date("d-m-Y",$plastaccess);//formata a data com a função date, se quiser exibir as horas utilize G:i
if($plastaccess =="31-12-1969"){$plastaccess="Não acessou a plataforma";}//o epoch registra os segundos desde 31/12/1969, logo se a função retornar isso significa que o user nunca acessou a plataforma
/*****************/
Agora você fez uma avaliação, e quer fazer um relatório :
Primeiro selecione os dados do aluno:
SELECT id, firstname, lastname, email FROM user where deleted=0 and order by firstname ;
grave a id do aluno em uma variavel:
$Uid=$dados["id"];
Descubre qual a uniqueid da tentativa desse aluno, e quanto tempo ele demorou para fazer essa avaliação, atravéz da tabela quiz_attempts (se estiver utilizando o módulo quiz)
SELECT uniqueid, timestart, timefinish FROM quiz_attempts where userid='$Uid';
Selecione a nota final do aluno na tabela grade_grades
SELECT finalgrade FROM grade_grades where userid='$Uid' ORDER BY id ASC;
As respostas das avaliações ficam armazenadas em question_states, examine bem essa tabela para decidir como pegar as respostas.
é isso, espero que ajude!
O trecho abaixo seleciona os alunos cadastrados no banco, assim você pode com o próprio php criar uma lista.
"SELECT id, username, firstname, lastname, email, cargo, loja, unidade, tempo_empresa, data_nascimento, lastaccess FROM user where deleted=0 order by id;"
os campos cargo, loja, unidade, tempo_empresa, foram inseridos por mim na tabela USER que registra todos os usuarios. A coluna deleted tem que ser 0, para você não receber alunos que foram deletados dentro do moodle.
Só um detalhe com o lastacess, o moodle grava o epoch e não uma data formatada, então se você quiser exibir o lastacess do aluno, você precisa disso:
$plastaccess=$dados["lastaccess"]; //recebe lastacess
$plastaccess = date("d-m-Y",$plastaccess);//formata a data com a função date, se quiser exibir as horas utilize G:i
if($plastaccess =="31-12-1969"){$plastaccess="Não acessou a plataforma";}//o epoch registra os segundos desde 31/12/1969, logo se a função retornar isso significa que o user nunca acessou a plataforma
/*****************/
Agora você fez uma avaliação, e quer fazer um relatório :
Primeiro selecione os dados do aluno:
SELECT id, firstname, lastname, email FROM user where deleted=0 and order by firstname ;
grave a id do aluno em uma variavel:
$Uid=$dados["id"];
Descubre qual a uniqueid da tentativa desse aluno, e quanto tempo ele demorou para fazer essa avaliação, atravéz da tabela quiz_attempts (se estiver utilizando o módulo quiz)
SELECT uniqueid, timestart, timefinish FROM quiz_attempts where userid='$Uid';
Selecione a nota final do aluno na tabela grade_grades
SELECT finalgrade FROM grade_grades where userid='$Uid' ORDER BY id ASC;
As respostas das avaliações ficam armazenadas em question_states, examine bem essa tabela para decidir como pegar as respostas.
é isso, espero que ajude!
Olá Rafael e todos,
Aproveitando o tópico, onde posso encontrar uma tabela (ou equivalente) descritiva do banco de dados do Moodle de maneira que se possa saber qual é a informação armazenada em cada campo?
Abraço,
JC
Aproveitando o tópico, onde posso encontrar uma tabela (ou equivalente) descritiva do banco de dados do Moodle de maneira que se possa saber qual é a informação armazenada em cada campo?
Abraço,
JC
Na question_states meu querido, só que se o user tentou 12 vezes, vão existir 12 respostas então pegue sempre em DESC pra receber a resposta que você quer!
Abraço!
Abraço!