2016-10-12 69 views
2

我試圖在樹級別中顯示的一組數據PHP樹級別嵌套菜單遞歸函數

例如,這是我的數據庫記錄

enter image description here

我希望像

顯示它

enter image description here

等等。

當然上面這張照片由自己

<?php 
 
    require 'tree.php'; 
 
    
 
    $tree = array(
 
     
 
\t 'wwq' => array(
 
\t 
 
\t   'Project4' => array(
 
\t \t \t  'phase1', 
 
\t \t \t \t 
 
\t \t \t \t), 
 
\t   
 
\t   'Project23' => array(
 
\t \t \t  'phase23', 
 
\t \t \t \t 
 
\t \t \t \t), 
 
\t \t \t 
 
\t \t \t 'Test1' => array(
 
\t \t \t  'test1', 
 
\t \t \t \t 
 
\t \t \t \t), 
 
\t   'Projecttest' => array(
 
\t \t \t  'phasetest', 
 
\t \t \t \t 'testtest', 
 
\t \t \t \t) 
 
\t \t \t 
 
\t \t \t \t 
 
\t ), 
 
\t  
 
\t 
 
\t); 
 
\t 
 
\t echo treeOut($tree); 
 
?>

手動鑰匙,我的作用是

<?php 
 
function treeOut($row_Recordset1){ 
 
\t $markup = ''; 
 
\t foreach ($row_Recordset1 as $branch => $twig){ 
 
\t \t $markup .= '<li>' . ((is_array($twig)) ? $branch . treeOut($twig) : $twig). '</li>'; 
 

 
\t \t } 
 
\t 
 
\t return '<ul>' . $markup . '</ul>'; 
 
\t 
 
\t } 
 
?>

所以,我的問題是我如何使數組爲循環而不是我輸入每個數據。

謝謝如果有人可以幫助我!如果有任何問題可以問我下面的評論。

+0

_「我的問題是我如何使數組循環而不是我鍵入每個數據」_我不明白,什麼會改變一個for循環?據我可以看到,你是否會使用「for」或「foreach」循環,你仍然需要輸入相同的數據? – Epodax

+0

雅,上面的數組是由我自己手動鍵入,但我不想那樣做。我希望從for循環獲取數據。我可以知道我哪裏錯了嗎? – eric

回答

0

如果它是你如何可以將它傳遞給treeOut()函數,那麼嘗試調用treeOut()之前添加這些行前需要準備的格式排列:

$tree = array(); 

$sql = "SELECT * FROM tbl_name ORDER BY companyName ASC, projectName ASC, phaseName ASC"; 
$result = mysql_query($connection, $sql); 

while($data = mysql_fetch_array($result)){ 
    $tree[ $data['companyName'] ][ $data['projectName'] ][] = $data['phaseName']; 
} 

echo treeOut($tree); 

希望這是你要找的內容,將幫助。

+0

感謝您的幫助! 但它仍然出來這個錯誤信息警告:mysqli_query()期望參數1是mysqli – eric

+0

我可以知道如何解決它嗎? – eric

+0

如果您使用的是舊mysql功能,請將'mysqli_ *'更改爲'mysql_ *'。 –