0

我正在开发一个传销应用程序,我需要将所有用户显示为树。为此,实现了用户之间的父子关系。我的表结构在这里:-

在此处输入图像描述

我已经根据关系在多维数组中检索了用户的 ID。这是数组:-

在此处输入图像描述

为此,我使用了以下代码:-

<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testapp', $con);

function create_tree( $parent_id = 0 )
{
    $result_array = array();
    $Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';';
    $query_result = mysql_query($Query);
    if(mysql_num_rows($query_result)>0)
    {
        while($row = mysql_fetch_assoc($query_result))
        {
            if(!array_key_exists($row['user_id'], $result_array))
            {
                //$result_array[$row['user_id']] = $row;
                $result_array[$row['user_id']] = create_tree($row['user_id']);
            }
        }
    }
    return $result_array;
}
$tree = create_tree();
print_r($tree);

现在,我需要以树状结构显示数据,例如:- 在此处输入图像描述

任何提示都会有所帮助。我非常接近完成这个......

4

2 回答 2

0

是的,你是如此接近..!!

试试下面它会为你工作..

<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testapp', $con);

function create_tree( $parent_id = 0 ,$result_array = array())
{

$Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';';
$query_result = mysql_query($Query);
if(mysql_num_rows($query_result)>0)
{
    while($row = mysql_fetch_assoc($query_result))
    {
        if(!array_key_exists($row['user_id'], $result_array))
        {
            //$result_array[$row['user_id']] = $row;
            $result_array[$row['user_id']] = create_tree($row['user_id'],$result_array);
        }
    }
}
return $result_array;
}
$tree = create_tree();
print_r($tree);
?>

如果这对您不起作用,请告诉我.. !!

谢谢..

于 2013-05-18T06:56:26.707 回答
0

试试看,它应该给你结构;

function create_tree( $parent_id = 0 , $result_array = array() )
{
    //$result_array = array();
    $Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';';
    $query_result = mysql_query($Query);
    if(mysql_num_rows($query_result)>0)
    {
        while($row = mysql_fetch_assoc($query_result))
        {
            if(!array_key_exists($row['user_id'], $result_array))
            {
                //$result_array[$row['user_id']] = $row;
                $result_array[$row['user_id']] = create_tree($row['user_id'], $result_array[$row['user_id']]);
            }
        }
    }
    return $result_array;
}

编辑; 忘记了函数中的删除结果数组

于 2013-05-18T11:17:52.383 回答