In meinem YaBBSE-Forum gibt es in Recent.php eine Funktion LastPostings(). Diese zeigt die letzten $showlatestcount Beiträge an. Das funktioniert auch.
Jetzt möchte ich die Abfrage so verändern, daß nur der jeweils neueste Beitrag zu
einem Thema angezeigt wird. Mein Versuch mit »GROUP BY m.ID_TOPIC« (s. u.) führt dazu, daß jeweils der
erste Beitrag eines Themas angezeigt wird.
Weiß jemand, wie ich die Abfrage verändern muß? Kann irgendwo ein »MAX(m.posterTime)« rein? Wo? ...
PHP-Code:
mysql_query ("
SELECT m.posterTime, m.subject, m.ID_TOPIC, m.posterName,
m.ID_MEMBER, IFNULL(mem.realName, m.posterName) AS posterDisplayName,
t.numReplies, t.ID_BOARD, t.ID_FIRST_MSG, b.name AS bName
FROM {$db_prefix}messages AS m, {$db_prefix}topics AS t,
{$db_prefix}boards AS b, {$db_prefix}categories AS c
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER=m.ID_MEMBER)
WHERE m.ID_MSG IN (" . implode(',', $messages) . ")
AND t.ID_TOPIC=m.ID_TOPIC
AND b.ID_BOARD=t.ID_BOARD
AND c.ID_CAT=b.ID_CAT
AND (FIND_IN_SET('$settings[7]', c.memberGroups) != 0
OR c.memberGroups='' OR '$settings[7]' LIKE 'Administrator'
OR '$settings[7]' LIKE 'Global Moderator')
".
"
GROUP BY m.ID_TOPIC
".
"
ORDER BY m.posterTime DESC
LIMIT 0, $showlatestcount;
");