ソーシャル ネットワーク サイトのすべてのコメント用に 1 つのテーブルを作成しました。
また、1 つのコメントに割り当てられたすべてのコメントのテーブルが 1 つあります。
そこで、各セクション タイプ (画像、ユーザー ページ、グループなど) に簡単に実装できるように、関数 comment() を作成しました。$_GET['s']==user の場合、ウォールポストとこれらのウォールポストへのコメントが必要です。すべて「コメント」に保存されます。
私はこれを表示するためにこのスキームを持っています: 1. コメントを取得する sql クエリ 2. html 出力 3. この html 出力内の別の sql クエリで、コメントの指定された割り当てられたコメント (この場合はウォールポスト) を取得します。
問題は、最初のクエリですべてのコメントが表示されることです。また、サブコメントであるはずのコメント。したがって、私の質問は、この最初のクエリで指定する方法がある場合、すべてのコメントを取得したときに、次のように言うことです。その場合は、このコメントを表示しないでください。これはサブコメントであるためです (上記の手順 3 で表示します)。
もしかしたら、この構造全体が変更される可能性がありますか?提案をいただければ幸いです。実現するのも難しいですが、どれが最も効率的でしょうか。
テーブル構造:
コメント
id、uid、nid、サイト、テキスト、日付
comment_assign
comment_id、assign_id
最初の SQL クエリの例。これは、すべてのコメント (割り当てられたコメントも) を表示しないようにするために機能しません。最後の行を参照してください。
SELECT *
FROM `comments` AS c
LEFT JOIN `comment_assign` AS ca ON ca.`comment_id` = c.`id`
LEFT JOIN `users` AS u ON c.`uid` = u.`id`
WHERE c.`nid`='".$nid."'
AND c.`site`='".$_GET['s']."'
AND ca.`comment_id` != c.`id`