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 :)
Trouvé !
SELECT *
FROM forum
WHERE id IN(
SELECT max(id)
FROM forum
GROUP BY user)
ORDER BY id
DESC LIMIT 15
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
Bonjour,
En utilisant la fonction DISTINCT de sql, cela devrait fonctionner
SELECT DISTINCT id_user_post FROM forum ....
Distinct n'est pas la solution sachant que je veux avoir accès à d'autre champ, comme l'ID, la date etc..