Afficher les derniers messages d'un forum

Par Genki, il y a 9 ans


Bonjour,

Question toute bête, mais je bloque quand même. Admettons, j'ai un forum, et je cherche à afficher les 15 derniers messages postés, CEPENDANT, je ne veux que les 15 derniers messages postés par des utilisateurs uniques. C'est à dire que dans les 15 derniers affichés, il n'y aurait pas deux fois la même personne, ça sera 15 personnes différentes, en revanche, si un utilisateur à posté 2 messages qui serait susceptible de faire partie de ces 15 derniers message, je veux le dernier message qu'il a posté. Et je bloque à cet endroit car il ne m'affiche que le premier.

C'est donc dans la requête que je bloque

// Query correspond simplement à mysqli_query $message = query('SELECT * FROM forum GROUP BY user ORDER BY id DESC LIMIT 15');

Donc le GROUP BY fait bien son taff, j'ai bien 15 messages d'utilisateur unique, mais le dernier utilisateur a posté 4 messages, et c'est le premier qui apparait dans la liste, et j'aimerai son dernier.
Si quelqu'un peut m'aider, merci :)

5 réponses

PEDR0, il y a 9 ans

Salut !
Je ne suis pas sur de moi, mais essayes comme ceci :

SELECT *, max(id) as id_max FROM forum GROUP BY user ORDER BY id_max DESC LIMIT 15
Genki, il y a 9 ans

Même résultat, ça n'a rien changé :/

Carouge10, il y a 9 ans

Bonjour,
En utilisant la fonction DISTINCT de sql, cela devrait fonctionner

SELECT DISTINCT id_user_post FROM forum ....
Genki, il y a 9 ans

Distinct n'est pas la solution sachant que je veux avoir accès à d'autre champ, comme l'ID, la date etc..

Genki, il y a 9 ans

Trouvé !

SELECT * FROM forum WHERE id IN( SELECT max(id) FROM forum GROUP BY user) ORDER BY id DESC LIMIT 15