小编Jam*_*itt的帖子

在mysql中停止递归乱伦的子父关系

我用PHP/MySQL/Javascript编程.我有一个我们想要在子/父关系中链接的部分列表,对层数没有限制.

当我从一个部件列表中选择要将子项添加到父级时,我限制了部件列表以排除父本身以及已经是该父级子项的任何部分.

我发现的是,我也想排除父母的祖父母,否则我们就会得到一种乱伦的关系,当我展示部分树时会创造一个无限循环.

不仅如此,我还不能允许孩子成为父母或曾祖父母等的祖父母

这是我目前使用的SQL语句,我认为也可以通过使用来改进,LEFT JOIN但此时我对SQL不够熟练.

SELECT * 
FROM sch_part_general 
WHERE (sch_part_general.part_id <> $parentId) 
AND (sch_part_general.part_id NOT IN 
  (SELECT part_id FROM sch_part_mapping WHERE parent_id = $parentId)
)
Run Code Online (Sandbox Code Playgroud)

sch_part_general是一个包含所有部分的多列表,其中part_id为主键.sch_part_mapping是一个带有part_id(child)||的双列映射表 parent_id(父).

有人能用SQL查询指出我正确的方向吗?我并不热衷于使用while循环来创建SQL语句,因为我认为这将是非常低效的,但这是我考虑过的唯一方法.

php mysql recursion parent

10
推荐指数
1
解决办法
1859
查看次数

JS树 - select_node不工作

我对JSTree和Ajax有一个奇怪的问题.

我通过Ajax/PHP请求生成我的树,它使用...生成HTML(带有UL,LI,A标签)

$.ajax({
    url: 'ajaxTreeView.php?method=edit&partid='+partId,
    cache: false,
    success: function(tree)
    {
        $('#treeViewer').html(tree);
    }});
Run Code Online (Sandbox Code Playgroud)

并使用...激活代码上的JStree

options = 
{
    "core": { animation: 120 },
    "themes": { theme: 'corral', dots: true },
    "types": 
    { 
        "types": 
        { 
            "parent": { "icon": { "image": "images/custom/Legend/node_select.png" } },
            "child": { "icon": { "image": "images/custom/Legend/node_select_child.png" } },
            "current": { "icon": { "image": "images/custom/Legend/node.png" } }
        }
    },
    "plugins": [ "html_data", "types", "themes", "ui", "contextmenu", "cookies" ],
    "ui": { "select_limit" : 1 },
    "cookies": { "save_selected" : false }
}; …
Run Code Online (Sandbox Code Playgroud)

ajax jquery jstree

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

ajax ×1

jquery ×1

jstree ×1

mysql ×1

parent ×1

php ×1

recursion ×1