Ik wil de laatste 15 nieuwsberichten hebben (zonder dubbele) gesorteerd op datum vd laatste reactie. Dus 15 titels van nieuwsberichten met daarachter het aantal reacties. Op dit moment worden de berichten gesorteerd op de eerste reactie, wat dus de laatste zou moeten zijn.

Dit is de Query:


<?php function showReacties()
{
global $db;
$sql = 'SELECT com.datum, com.news_id, news.title, COUNT(com.news_id) AS numReactions
FROM ` news_comments` com, `news_news` news
WHERE com.news_id = news.id
GROUP BY com.news_id, news.title
ORDER BY com.datum DESC LIMIT 0,15';

$db->DbQuery( $sql );

echo "<table width='240' border='0' cellspacing='0' cellpadding='0'>\n";

if( $db->DbNumRows() > 0 )
while( $article = $db->DbNextRow() )
{
echo "<tr><td>";
echo "<p class='datumtijd'>" . datumnew($article['datum']) . "<a class='item' href=index.php?archive={$article['news_id']}#reageer'> | {$article['title']} ({$article['numReactions']})</a>";
echo "</td></tr>";
}
else
echo "Kon geen artikelen ophalen $db->DbError()";

echo "</table>\n";
}
?>

Dit is de structuur van de comments table:

CREATE TABLE `news_comments` (
`id` int(11) NOT NULL auto_increment,
`news_id` int(11) NOT NULL default '0',
`ip` varchar(15) NOT NULL default '',
`datum` timestamp NULL default CURRENT_TIMESTAMP,
`message` text NOT NULL,
`email` varchar(255) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Wie-o-wie biedt die helpende hand?
Ja! Helaas wel.. Volgens mij is dit een lastige!
Ik ga er nog even op studeren. Wat was eigenlijk je resultaat bij de voorbeeldquery van Frank?
Precies hetzelfde. Maar ik had geen subquery gemaakt, aangezien ik geen flauw idee had hoe die er uit zou moeten zien...

Reageren