3

次のようなカテゴリテーブルがあります。そのテーブルにカテゴリ、サブカテゴリを保存しています(複数のサブカテゴリ)。私のテーブルは次のようになります

id     |    name       |  parent_of    |   created_on
-------+---------------+---------------+---------------------
1      |   Name 1      |  0            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------
2      |   Name 2      |  0            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------
3      |   Name 3      |  1            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------
4      |   Name 4      |  1            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------
5      |   Name 5      |  3            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------
6      |   Name 6      |  3            |  2013-05-1 00:00:00
-------+---------------+---------------+---------------------

次に、このテーブルにクエリを実行し、次のようにツリー構造を作成して、フロント エンドでカテゴリ間を簡単に移動できるようにする必要があります。

次のようなツリー

1
  |--> 3
  |   |--> 5
  |   |--> 6
  |--> 4
2

クエリについて少し混乱しています。誰でも私を助けてもらえますか?

前もって感謝します

4

2 に答える 2

2

基本的な表示には、次を使用できます。

SELECT * FROM `Table` WHERE `parent_of` = 0;

すべてのルート ノードが表示されます。


ユーザーがノードをクリックすると、次のように、サーバー (Ajax など) にリクエストを送信して、クリックしたノードの子ノードをフェッチします。

$node = abs((int)$_GET['node']);

それから:

SELECT * FROM `Table` WHERE `parent_of` = {$node};
于 2013-06-03T06:55:05.533 に答える
0

ソリューションに合わせて以下のコード ロジックを試してください。

$result = mysql_query("SELECT id, parent_of FROM category WHERE parent_of > 0");

$treeStructure = array();
while($row = mysql_fetch_array($result)) {
    $id = $row['id'];
    $parentID = $row['parent_of'];
    $treeStructure[$parentID][] = $treeStructure[$id];                
}
于 2013-06-03T07:01:18.310 に答える