【问题标题】:Modified Preorder Tree Traversal - Display Only 2 of each child修改前序树遍历 - 每个孩子只显示 2 个
【发布时间】:2014-06-10 15:52:24
【问题描述】:

我正在尝试通过sitepoint's 教程了解如何使用 MPTTD。

$result = mysql_query('SELECT title, lft, rgt FROM tree '.  
'WHERE lft BETWEEN '.$row['lft'].' AND '.  
$row['rgt'].' ORDER BY lft ASC;');

根有 lft = 1, rgt = 42 所以如果我使用 lft = 1, rgt = 42 .. 它会返回

A A1 A2 A3 A4 B B1 B2 B3 B4 C C1 C2 C3 C4 D D1 D2 D3 D4

我如何像这样从后代中只检索第一个和第二个孩子

A A1 A2 B B1 B2 C C1 C2 D D1 D2

谢谢你的帮助:)

【问题讨论】:

    标签: php mysql tree-traversal


    【解决方案1】:

    你有两个选择。方案一:先获取左右值。然后使用左右值。从左=2 和右=17 的表中选择*。选项 2:要获取每个后代,您可以使用左值和任意数量的子代,例如 left+2 之间的 left=2。例如:

       $result = mysql_query('SELECT title, lft, rgt FROM tree '.  
       'WHERE lft BETWEEN '.$row['lft'].' AND '. $row['lft']+2.' ORDER BY lft ASC;');
    

    【讨论】:

    • 感谢您的回复.. 是的,使用左右值会给我后代。但我只需要每个后代的前 2 个孩子。
    • 您可以在 left=2 和 left+2 之间修改查询和搜索吗?
    猜你喜欢
    • 2011-02-02
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2016-07-14
    • 2012-04-13
    相关资源
    最近更新 更多