tags:

views:

110

answers:

2

Hello guys,

Given the following table, how can write a MySQL query to display threaded comments in a single page?

Table structure:

  • comment_id
  • comment_parent
  • comment_content

Thank you.

A: 
Select comment_content from table where comment_parent != 0;

Then use PHP to display the results however you want.

Jonathan
Sorry, I edited my question.
Psyche
Your question still isn't clear. I think what you mean to ask is how do you display threaded comments with PHP. The query to get all the comments will just be 'Select * from table'. Then you will need to write some PHP to display the comments in the correct order. So basically what you want to do is go through all the parent comments and if a comment has children go through and print those under the parent comment. If you allow for multilevel threading then it's somewhat more complicated.
Jonathan
I made a recursive function and everything is ok now.
Psyche
A: 

Depending on how deep you want to go ... but here is a 1-thread example to do with 1 query

SELECT * FROM `comment` a LEFT JOIN `comment` b ON a.comment_id = b.comment_id WHERE a.comment_parent = 0

then use php to select wether the parent comment changes and display that.

but it would likely be better to do this over multiple queries for speed. you would need to do some benchmarks to be sure

Mike Valstar