递归SQL请教PHP

时间:2013-12-29 22:44:49

标签: php sql arrays tree recursive-query

我正在尝试进行递归的sql查询,搜索父亲的所有子项以及那些子项的子项等等。下面的代码的问题是它只检索第一个子树。

  • 我需要将整个树的所有电子邮件保存在一个数组中

    $hermanos = array();
    function obtener($id){
        $res = mysql_query("SELECT email,id FROM usuarios WHERE padre = '$id'", Conectar::con());
        while($row = mysql_fetch_assoc($res)){ 
            if ($row['email'] != 'waiting') {
                $hermanos[] = $row['email'];
                obtener($row['id']);
            }
        }
        return $hermanos;
    }
    $a = obtener($invitado);
    print_r($a);
    

1 个答案:

答案 0 :(得分:1)

从模糊的描述中我认为你想要另一种解决方案。根据db语言,这称为Hierchial data retireval。我认为这种递归查询应该在db end上使用过程/视图完成 您可以查看这些链接以获取heirchial数据

  1. Sol1 with sql view

  2. Article about Hierarchical data in mysql

  3. another soln with view