sql选择来自某个祖先的所有子孙(根类别)

时间:2012-01-27 14:25:29

标签: php mysql sql

我有几个类别的图像。所有类别都在某个表中(比方说tbl_categories)。子类别的级别在1到10之间。 我想创建一个查询,从一个特定的根类别(可以是一个子类别本身)给出所有子类别(及其子类别,等等......)的ID。

示例:

 Category 1
    subcategory a
 Category 2
    subcategory b
        subsubcategory I
        subsubcategory II
    subcategory c

如果我使用类别2,我想要子类别b和c,以及sububcategories I en II作为结果。 听起来相当容易,但我没有线索。

我很擅长编写查询...

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

//Parents
$data = mysql_fetch_assoc(mysql_query("select id,name from categories where parent = 0"));

//Childrens
foreach( $data as $key => $row)
{
    $data[$key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string( $row['id'] )."'"));

    //childrens
    foreach( $data[$key]['childrens'] as $_key => $_row )
    {
        $data[$key]['childrens'][$_key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string( $_row['id'] )."'"));
    }
}

    //Print Array
print_r( $data );