Busca no BD Mysql

Busca no BD Mysql

por Andre Del Bianco -
Número de respostas: 3
Boa noite galera.

Estou precisando fazer um relatório com alguns dados. Na tabela mdl_log é registrado todas as ações do usuário. Gostaria de pegar todos os usuários que estão na atividade Quiz, e cometeram a ação "continue attempt" no mesmo dia e com IPs diferentes.

Te acontecido aqui, que alguns usuários iniciam a prova nos laboratórios, em salvam a prova sem enviar. Fecham o moodle e falam que terminaram a prova. Pegam o notebook e continuam a prova do lado de fora do lab, com consulta.

Para evitar isso preciso deste relatório.

Não consigo fazer a Query para pesquisar de uma só vez. Para estou tentando fugir da solução de tratar os dados no PHP, para criar agilidade no relatório.

Se alguém tiver alguma ideia. Ajuda ai.

Valeu
Contagem das avaliações:  -
Em resposta à Andre Del Bianco

Re: Busca no BD Mysql

por Daniel Neis Araujo -
Imagem de Core developers Imagem de Plugin developers Imagem de Translators
Oi, André

Acredito que primeiro você tem que pegar todos os alunos que começaram o quiz e seus respectivos IPs e depois fazer uma nova passada na tabela de logs procurando pelo mesmo usuário, no mesmo dia, com ip diferente

SELECT userid
FROM
(SELECT userid,ip, DAYOFMONTH(FROM_UNIXTIME(time)) as dia
FROM log
WHERE DAYOFMONTH(FROM_UNIXTIME(time)) == 'DIA DO MÊS DESEJADO'
AND action = 'login') as t1
JOIN logs
ON (t1.userid = logs.userid )
WHERE t1.dia = DAYOFMONTH(FROM_UNIXTIME(time))
AND t1.ip != logs.ip


Não é necessariamente uma consulta, são duas aninhadas, mas talvez resolva...
Contagem das avaliações:  -
Em resposta à Andre Del Bianco

Re: Busca no BD Mysql

por Helbert dos Santos -
Olá André,

Não sei se é aplicável ao seu caso o que estou falando.

Mas se você estiver hospedando seu moodle em um servidor externo a sua rede, o moodle vai armazenar no log o IP REAL (válido na internet, IP "externo" do roteador), quer dizer não vai diferenciar os IPs de sua rede interna, vai colocar o mesmo IP para todos que estão dentro dela.

Mas por data e usuário, dá para fazer tranquilo.

Abraço,
Espero ter ajudado.
Contagem das avaliações:  -
Em resposta à Helbert dos Santos

Re: Busca no BD Mysql

por Andre Del Bianco -
Resolvi fazendo duas buscas tabela mdl_log pegando os registro da data determinada pelo usuário com a action 'continue attemp' e module 'quiz'

Depois tratei os dados com o PHP comparando as duas buscas.

É um relatório interessante para instituições, pois está sendo muito utilizada por alunos espertos.

Valeu pela ajuda.
Contagem das avaliações:  -