- mdl_user – Tabela de usuário
- mdl_log - Tabela de log
Segue o comando SQL:
SELECT DISTINCT u.id, u.firstname, u.lastname FROM mdl_user u INNER JOIN mdl_log l ON u.id = l.userid WHERE time >=?
Passe o parâmetro de data em time >= ? .
O parâmetro da datadelimita o período para listar os alunos que estão online. Se for os últimos 5 minutos, subtrair 5 minutos da data atual.
Não esqueça converter a data para formato numérico de (número longo). Todos os campos das tabelas da base de dados do Moodle usam campo Long (número longo) para gravar a dada. Por isso é necessário converter a data em segundos.
Como a data no banco do Moodle não é legível ao olho nú, é melhor rodar esse código numa linguagem de programação.
Veja Também:
Listar Usuários Online do Moodle com Programação PHP
Bem legal a dica, muito obrigado!
ResponderExcluirFiz uma modificação, preferi usar a função unix_timestamp() do MySQL, abaixo um exemplo usando 5 minutos:
SELECT DISTINCT u.id, u.firstname, u.lastname FROM mdl_user u INNER JOIN mdl_log l ON u.id = l.userid WHERE time >= UNIX_TIMESTAMP()-(5*60)
Valeu Leonardo,
ExcluirEsse comando é bem prático. O UNIX_TIMESTAMP() só funciona com a base MySQL e não no PostgreSQL.