投稿、コメント (親コメント)、およびコメント返信 (子コメント) を表示するコメント システムに取り組んでいます。
MySql コメント テーブルは次のようになります。
comment_id int primary_key
post_id int // where i save the post id
author varchar
comment text
parent_id int // where i save parent comment id in case this comment is reply of another comment
さて、私の場合は、コメント情報を出力するために MySql 結果セットを通過するときです。子コメント(他のコメントのコメント)と親コメント(投稿のコメント)を印刷しようとしたときとまったく同じです。
これを達成するための私の現在の方法は、parent_idのないすべてのコメントを選択することです
SELECT * FROM comments WHERE parent_id = null
PHP を使用してすべての結果をループし、子コメントがあるかどうかを検索する各コメントのループ内に別のクエリを作成します。
<?php
$sql_result_set;
while($comment = mysql_fetch_array($sql_result_set, MYSQL_ASSOC){
// process comment info
$sql = "SELECT * FROM comments where parent_id = ".$comment['comment_id'];
$result = mysqli_query($sql);
if(mysql_num_rows($result)>0){
while($child_comments = mysql_fetch_array($result, MYSQL_ASSOC)){
// child comments of the parent
}
}
}
?>
さて、私の質問は、「同じことを行うためのより良い方法はありますか?」ということです。
あなたの助けに感謝します
ではごきげんよう、