この質問が非常に初歩的なものであることは承知しています。 。私も多くの投稿を検索しましたが、どれも非常に面倒、またはそれを達成するのに十分な能力がありません。
pid=1はid=1のコメントへの返信ではないでしょうか?隣り合っているかどうかは気にする必要はありません
区切られた行の意味がよく分かりません…
pid=1というのはid=1のコメントへの返信だけではないでしょうか?隣り合っているかどうかは気にする必要はありません
データベースからコメントを取得したい場合は、次のようになります:
id pid
1 0
3 1
2 0
4 0
このようにphpを使って出力すると非常に簡単です。以下にIDが順に出力されます。pidが0でない場合はブロガーからの返信とみなされ、返信されたコメントの下に表示されます。
分割された行の意味がよくわかりません...
たとえば、訪問者が 2 つのコメントを投稿し、ブロガーが最初のコメントに返信した場合、データベース内の保存順序は次のようになります:
id pid
1 0
2 0
3 1 //返信とコメントは一行で区切ってます
3階から2階の投稿への返信を参考にしてください
コメントへの返信はpid=1ではないでしょうか? id=1の場合?隣り合っていても気にする必要はありません
php内で並び替える必要がなく、関連するコメントや返信を「上下」で実現できるSQL文があれば知りたいです
分割された行の意味がよくわかりません...
たとえば、訪問者が 2 つのコメントを投稿し、ブロガーが 1 つ目のコメントに返信した場合、データベース内の保存順序は次のようになります。
id pid
1 0
2 0
3 1 //コメント1行ごとに返信を分けます
2階の投稿への3階からの返信をご参照ください
隣同士とは関係ありません。重要なのは、プログラムが間違っていないことを確認するために SQL とロジックを適切に処理することです。想像した順序で挿入することは不可能です
何が何だかよくわかりません。区切られた行は...
たとえば、訪問者が 2 つのコメントを投稿し、ブロガーが最初のコメントに返信した場合、データベース内の保存順序は次のとおりです:
id pid
1 0
2 0
3 1 //返信とコメントは一行で区切ってあります
2階への返信は3階の私の投稿を参照してください
これは隣り合わせとは関係ありません、重要です SQLとロジックをうまく処理した方が良いですプログラムが間違っていないことを確認するために、この順序に依存しないでください。想像した順序で挿入することは不可能です
ユーザーがコメントを投稿し、ブロガーが返信する順序が同じではないことは承知しています。そのため、データベースストレージには順序がありません。データベースからデータを取得するときにSQLクエリステートメントにソート関数を追加して、希望する順序を達成できるようにし、Webページに簡単に出力できるようにしたいと考えています。順序付けされていないデータは、解決するために PHP にスローされます。したがって、特定のデータベース設計と SQL クエリのスキルが必要です
分割された行の意味がよくわかりません...
たとえば、訪問者が 2 つのコメントを投稿し、ブロガーが最初のコメントに返信した場合、
2 階への返信は 3 階の投稿を参照してください
これは隣り合うこととは関係がありません。プログラムが間違っていないことを確認するために、SQL とロジックを適切に処理することをお勧めします。この順序で挿入することは不可能です。ユーザーがコメントを投稿し、ブロガーが返信する順序が通常と同じではないことはわかっています。そのため、データベースからデータを取得するときに、SQL クエリ ステートメントに並べ替え関数を追加したいと考えています。希望する順序を実現できるため、順序のないデータを PHP にスローして解決するのではなく、Web ページに簡単に出力できます。したがって、特定のデータベース設計と SQL クエリのスキルが必要です
order by を使用することはできないでしょうか?共通点を見つけて、最初に PID、次にその他を見つけて、1 つずつ並べ替えます
order byは使えないのですか?共通点を見つけて、最初に PID、次にその他の ID を 1 つずつ並べ替えます
共通点はありません。考えてみました
質問と要件を正しく理解しているかどうかわかりません。
この問題にはいくつかの解決策があると思います:
1. 1 つは、最も複雑な状況は「コメントの投稿後、コメントのコメント」のみであるため、単にコメント専用の新しいテーブルをセットアップするだけです。コメントを保存します。 order by について議論するよりも、この方が信頼できると思います。
2. 1 つは、投稿を表示し (問題ないはずです)、次にコメントを表示する方法です (これも問題ありません)。 foreach が各コメントを表示するときに、コメントのコメントを表示するクエリをいくつか呼び出します。
個人的には、2 番目の方法を使用することをお勧めします。
ところで、この質問は実際には初歩的なものではありません。
固定レベルが 2 レベルであると言うのは簡単です
http://sqlfiddle.com/#!2/e433e/1
このステートメントは mysql モデレーターから学びました
select * from `comment` order by if(pid=0,id,pid) asc
このステートメントは注意深く研究する必要があります。