I want to print a individual comment in drupal based on it's comment ID. How can I do this? Google and other sources have yielded me nothing. Thank you.
                +3 
                A: 
                
                
              
            
function print_comment($cid) {
  $sql = "SELECT * FROM {comments} WHERE cid = %d";
  if ($comment = db_fetch_object(db_query($sql, $cid))) {
    $node = node_load($comment->nid);
    return theme('comment', $comment, $node);
  }
}
                  Eaton
                   2009-03-21 00:57:27
                
              
                +2 
                A: 
                
                
              Eaton's suggestion is good (except it's {comments}, not {comment}) if you need to display the comment like core does it, including the info coming from the node. Except the default theme_comment implementation in modules/comment/comment.tpl.php makes no use of $node.
However, I'd do it slightly differently, because if you need to extract a single comment, displaying it with the normal content formatting provided by comment.tpl.php is likely to be inappropriate.
function print_comment($cid) {
  $sql = "SELECT * FROM {comment} c WHERE c.cid = %d";
  if ($comment = db_fetch_object(db_rewrite_sql(db_query($sql, $cid), 'c')) {
    return theme('my_special_comment_formatting', $comment);
  }
}
And of course, define this special commment formatting in your module's hook_theme() implementation, inspired by what comment.tpl.php does.
                  FGM
                   2009-03-21 13:32:32
                
              Hah. Thanks for noting the comment/comments distinction. I'd popped open api.drupal.org and not noticed I was looking at the D7 version of the code -- the table name has changed to singular in the new dev release.
                  Eaton
                   2009-03-21 16:56:56
                Also, you'll get some PHP notices if there isn't a node object passed in -- $node->type is used to construct possible template options (like comment-story.tpl.php) in the default phptemplate\_preprocess\_comment function.
                  Eaton
                   2009-03-21 16:57:44
                `phptemplate_preprocess_comment` won't be used when invoking theme('my_special_comment_formatting'), though. But good catch for `theme('comment')` !I had only checked the template, not the preprocess function.
                  FGM
                   2009-03-21 20:25:29
                
                +1 
                A: 
                
                
              
            No reason to use any sql to do this, two drupal api function calls is all it takes.
function print_comment($cid) 
{
    $comment = _comment_load($cid);
    return theme('comment',$comment);
}
                  TrippRitter
                   2010-01-28 22:26:43