2012-03-10 3 views
1

Je suis en train de construire un simple forum PHP + MySQL mais j'ai des problèmes avec l'affichage des informations dans le bon format.Affichage du forum PHP + MySQL

Mon actuel code SQL est

SELECT forum_posts.catId, forum_posts.postId, forum_posts.date, forum_posts.message, 
    forum_posts.userId, users.userId, users.username, forum_thread.threadId, forum_thread.subjectTitle 
    FROM forum_posts 
    LEFT JOIN forum_thread ON forum_posts.threadId = forum_thread.threadId 
    LEFT JOIN users ON users.userId = forum_posts.userId 
    GROUP BY forum_posts.catId 
    ORDER BY forum_posts.postId DESC, forum_posts.date DESC, forum_posts.catId ASC 

Le problème, c'est qu'il ramène tout dans la bonne catégorie, mais il ramène le premier résultat de la catégorie et non la dernière. Je veux simplement que le code affiche la dernière réponse dans chaque catégorie.

Toute aide est très appréciée merci.

Répondre

1

Votre requête doit renvoyer une plage de lignes. Essayez de limiter le résultat à 1 élément. Si vous triez les résultats en descendant, vous obtiendrez le dernier élément.

ORDER BY ... DESC LIMIT 1 

Je ne suis pas sûr que vous trouvez la dernière entrée par postId ou date. Si vous le trouvez par date, vous devez commencer le regroupement avec le date. Mais je ne comprends pas pourquoi vous triez tellement les résultats pour obtenir un seul ensemble de données.

ORDER BY forum_posts.date DESC LIMIT 1; 

Est-ce ce que vous voulez? En outre, cela pourrait vous aider: Select last row in MySQL.