2015-12-03 125 views
0

需要幫助下面是我的數據庫表中的數據在選擇查詢

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或管理的hr_id)
如果有users.suppose其返回2個用戶
然後(檢查用戶下那些用戶)......等等

並最終成爲顯示用戶層次結構的樹。

+1

嘗試:'$ array = json_decode($ josn,ture)'和'print_r($ array [1]);' –

+0

解碼你的json,'print_r(json_decode($ json) - > person);' – check

回答

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格式有點怪雖然..

+0

我需要以循環每個人的姓名,用戶名,性別等等。它的東西是這樣的 foreach($ person as $ person){ $ person ['names'] [0],$ person ['email'] [0], $ person ['username'] [0] } 這只是和exp我需要。所以每個第一個元素或每個數組做一個完美的記錄..希望你得到它 –

+0

是的,但問題是你的JSON格式,它不允許你一次循環這些人,因爲數組嵌套在人的財產..所以你需要做的是爲每個值分開循環。上面的例子僅用於名稱,但對於電子郵件和其他人應該是相同的... – zaw

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>'; 
     } 

    }