在选择查询中需要帮助

时间:2015-12-03 06:29:34

标签: php mysql arrays

以下是我的数据库表数据

id    name  manager_id  hr_id          
 1    abc            0      0           
20    abc1          22     21         
21    abc2          22      1  
22    abc3           1      1   
31    abc4          20     21 
32    abc5          20     21 


function get_child_users($id){
    global $mysqli;
    $q ="SELECT * FROM users where manager_id ='$id' or hr_id ='$id'";
    $sql = $mysqli->query($q);
    echo '<ul>';
    $count = $sql->num_rows;

    if($count > 0 ){
        while($row =  $sql->fetch_array()){
               echo '<li id='.$row['id'].'>'.$row['username'].'';
               echo'</li>';
            }
        echo '</ul>';
        }
    }

以上是我正在创作的功能。

我只想获取数据,如果看起来像

管理员   用户(拥有manager_id或admin的hr_id)
       如果有users.suppose它返回2个用户
              然后(检查这些用户下的用户)....等等

最后成为一个显示用户层次结构的树。

2 个答案:

答案 0 :(得分:0)

你先解码它,然后得到你需要的任何值,如下:

$decoded_json = json_decode($json);
print_r($decoded_json->person->names[0]);
echo $decoded_json->person->names[0]->first;

如果你需要循环每个人名,例如:

foreach ($decoded_json->person->names as $key => $each_person_name) {
    echo $each_person_name->first . '<br>';
}

你的json格式虽然有点奇怪..

答案 1 :(得分:0)

解决了问题

function get_child_users($id){
    global $mysqli;
    $q ="SELECT * FROM users where manager_id ='$id' or hr_id ='$id'";
    $sql = $mysqli->query($q);
    $count = $sql->num_rows;
    if($count > 0 ){
        echo '<ul>';
        while($row =  $sql->fetch_array()){
               echo '<li id='.$row['id'].'>'.$row['username'].'';
                          get_child_users($row['id']);
               echo'</li>';
            }
        echo '</ul>';
        }

    }