That is what your SQL asks for.
$RQ = "SELECT max(id) AS id, Category, TName, Username, Started FROM forum GROUP BY Category DESC";
You are asking for the max(id) and not specifying a WHERE, so you will always have the last Id and the first post.
I hate GROUP BY it only seems to return the first occurence of the item.
I think you will have to do a query for each category.
You may want to post this in the DB section, you may get a better response.
You could do the processing afterwards if you don't want to do too many queries.
Some hosts have limits on these.
<?
$RQ = "SELECT id, Category, TName, Username, Started FROM forum ORDER BY ID DESC";
$cats = array( 'cat1','cat2','cat3' );
while( (($row=mysql_fetch_array($RQ))!==FALSE) and (count($cats)>0) )
{
if( in_array( $row['Category'] , $cats ) )
{
$lastposts[] = $row;
unset( $cats[$row['Category']] );
}
}
?>
This should search thru the results and only stop when all the categorys have been found or the end of the data.
$lastposts should have the 3 last posts.
HalfaBee