lft と rgt の値を持つネストされたセットを使用して、次のツリー構造があります。
node
node
node
node
node (selected)
node
node
node
node
ツリーが展開され、選択したノードのパスにのみ表示され、関係のないノードが折りたたまれたり非表示になったりするようにナビゲーションを構築したいと思います。
上記の方法を使用すると、ツリーは次のように出力されます。
node
node
node
node (selected)
node
node
node
これはphp/mysqlを使用して可能ですか? SQLの達人がクエリの作成を手伝ってくれるなら、私は最も感謝しています.?
レベルごとに追加のクエリが必要かどうかは気にしません。おそらく、せいぜい 4 または 5 レベルの深さになるだけです...
ノード テーブルの概要:
--
-- Table structure for table `exp_node_tree_1`
--
CREATE TABLE `exp_node_tree_1` (
`node_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`lft` mediumint(8) unsigned DEFAULT NULL,
`rgt` mediumint(8) unsigned DEFAULT NULL,
`moved` tinyint(1) NOT NULL,
`label` varchar(255) DEFAULT NULL,
`entry_id` int(10) DEFAULT NULL,
`template_path` varchar(255) DEFAULT NULL,
`custom_url` varchar(250) DEFAULT NULL,
`extra` varchar(255) DEFAULT NULL,
PRIMARY KEY (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;
--
-- Dumping data for table `exp_node_tree_1`
--
INSERT INTO `exp_node_tree_1` VALUES(1, 1, 12, 0, 'Home', 1, '0', '/', '');
INSERT INTO `exp_node_tree_1` VALUES(5, 10, 11, 0, 'About Us', 2, '4', '', '');
INSERT INTO `exp_node_tree_1` VALUES(6, 6, 9, 0, 'Team', 3, '5', '', '');
INSERT INTO `exp_node_tree_1` VALUES(7, 3, 4, 0, 'Contact Us', 4, '4', '', '');
INSERT INTO `exp_node_tree_1` VALUES(8, 7, 8, 0, 'Awards', 5, '5', '', '');
INSERT INTO `exp_node_tree_1` VALUES(10, 2, 5, 0, 'New Page', 6, '4', '', '');
ありがとうございました!