most popular comments PHP

Hi,
How can I edit following code to display most commented posts first?

<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt ASC
LIMIT 5";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ul>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->post_title)
.":" . "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;?>

Open in new window

static86Asked:
Who is Participating?
 
LAMASEConnect With a Mentor Commented:
Do you want to show the comments or the posts? for the posts add a COUNT(*) as NUM_COMMENTS in the select, GROUP BY post_ID and ORDER BY NUM_COMMENTS. DESC
0
 
static86Author Commented:
I want to display most popular posts.
Following code does not return anything:(.
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt COUNT(*) as NUM_COMMENTS
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
GROUP BY post_ID
ORDER BY NUM_COMMENTS.DESC
LIMIT 5";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ul>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->post_title)
.":" . "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;?>

Open in new window

0
 
Lukasz ChmielewskiCommented:
Does $sql query return anything when you run it through phpmyadmin ?
Just echo $sql; and copy the result into pma.
0
 
static86Author Commented:
The first code works perfectly. It displays most recent comments. Instead of that I want to display first 5 posts which are most popular (are most commented ).
0
 
Lukasz ChmielewskiConnect With a Mentor Commented:
You're missing , in the second query
"...com_excerpt, COUNT(*)..."
0
All Courses

From novice to tech pro — start learning today.