状況:
ディレクトリのmysqlテーブルがあります。ルートディレクトリのparentIDが0になるまで、各ディレクトリには親ディレクトリ(parentIDとして保存)があります。
例えば:
rowID: 1, name: Dir1, parentID: 0 (root directory)
rowID: 2, name: Dir2, parentID: 0 (root directory)
rowID: 3, name: Subdir1, parentID: 1 (lives in "Dir1")
rowID: 4, name: Subdir2, parentID: 1 (lives in "Dir1")
rowID: 5, name: Subdir3, parentID: 3 (lives in "Subdir1", which in turn lives in "Dir1")
rowID: 6, name: Subdir4, parentID: 5 (lives in "Subdir3", which lives in "Subdir1", which lives in "Dir1")
したがって、ここには3つのディレクトリの深さの構造があります。
任意のディレクトリをその親に結合し、最後に結合されたディレクトリのparentIDが0になるまで(つまり、ルートディレクトリが見つかるまで)ステートメントを作成する必要があります。どのディレクトリでも、ブレッドクラムを親に戻すことができるかのように考えることができます。
これにはMySQLのループが必要になる可能性があると思いますが、私の人生では、Webの例を機能させることはできません。ある種の構文エラーが含まれているように見えるため、いくつかの例を実行することさえできません。誰かが私が始めるのを手伝ってもらえますか?
これを実行するために最も簡単で最高のパフォーマンスを提供する任意の結果形式を受け入れることができます。正しい順序の行番号の単純な配列(たとえば、5、3、1、0、ID 0に到達するためのステップを示す)、またはこれを達成する行の順序付きリストである完全なテーブル(最良)のいずれか、例えば
rowID: 5, name: Subdir3, parentID: 2;
rowID: 3, name: Subdir1, parentID: 1;
rowId: 1, name: Dir1, parentID: 0;
よろしくお願いします!