Originariamente inviato da Trotttola
Ho fatto alcune prove in attesa della tua risposta in quanto c'era un dubbio che mi era "saltato" all'occhio ed ho corretto la query nel seguente modo.

Da:

SELECT eventi.utente, dataora FROM eventi JOIN utenti
ON eventi.utente = utente.id
WHERE utente.collegato = '1' and eventi.dataora =
(select MAX(e2.dataora)
FROM eventi e2
where e2.utente = eventi.utente)

A:

SELECT eventi.utente, dataora FROM eventi JOIN utenti
ON eventi.utente = utenti.utente
WHERE utente.collegato = '1' and eventi.dataora =
(select MAX(e2.dataora)
FROM eventi e2
where e2.utente = eventi.utente)

Con questa modifica ora funziona.

Ho fatto una cavolata?
Si, la modifica è corretta ma il DB non è modellato correttamente.

Ti consiglio di farlo altrimenti potresti avere problemi di allineamento dati più in la.

Dato che hai detto che sei neofita, ti consiglio di cercare in rete un pò di dispense sulla modellazione dei DB (cerca modello entità-relazioni) e le forme normali. Ti ritornerà sicuramente utile.