SELECT *, COUNT(`id`) as count
FROM `visitors`
WHERE `time` = max(`time`)
GROUP BY `ip`
ORDER BY `time` DESC";
Ceci est ma requête pour afficher les données de ma table de visiteurs les regroupant par IP mais je veux montrer l'heure la plus récente de cette particualr ip;mysql afficher le plus récent `ip`
Par ex. si cette ip: 145.46.78.241 est ouverte 10 fois je veux montrer le dernier, je veux dire le plus grand timestamp UNIX.
# ip location isp time
5 79.171.53.96 Tirana, Tirane, AL AS30722 Vodafone Omnitel B.V. 58 minutes ago
11 46.252.36.216 AL AS52073 4ALB 2 hours ago
2 79.171.53.100 Tirana, Tirane, AL AS30722 Vodafone Omnitel B.V. 2 hours ago
Maintenant pour ex. ip = 79.171.53.96 est ouvert il y a plus de 58 minutes et je veux afficher celui-là pas celui qui est ouvert il y a 58 minutes.
Ma requête ne fonctionne pas et je reçois cette erreur: Fatal error: Call to a member function fetch_assoc() on a non-object
vous ne pouvez pas utiliser 'SELECT * 'avec une clause' group by' si aucune colonne n'est ajoutée. Et un agrégat peut ne pas apparaître dans la clause 'WHERE' mais dans' HAVING' – Horaciux
Il ressemble plus à une erreur PHP. Pouvons-nous vous voir code? –
Est-ce que 'where \' time \ '= max (\' time \ ') ne vous donnera pas 1 rang? La logique semble désactivée, mais cela dépend aussi du type de colonne pour 'time'. – jeroen