2016-10-12 35 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_ *'。 –