再帰関数を使ってメニューを印刷しようとしています。私はこれらの質問からのコードの例を使用しました:
コードは私には正しいように見え、構文的には正しいのですが、結果として空白のページが表示されます。エラーはありませんが、このphpに続くHTMLも表示されません。誰か考えがありますか?
$connect = mysqli_connect($db_host,$db_user,$db_password,$db_database)
or die ("Couldn't connect to server: ".mysqli_error());
$query = "SELECT * FROM categories";
$result = mysqli_query($connect,$query)
or die ("Couldn't execute query: ".mysqli_error());
function menuPrint($categories, $parent = 'root', $level = 0)
{
$menuList = '<ul>';
foreach($categories as $index => $category)
{
if($category['Parent'] == $parent)
{
$menuList .= '<li id="'.$category['ID'].'" class="tier'.$level.'">'.$category['Name'];
$check = $this->menuPrint($categories, $category['ID'], $level+1);
if($check != '<ul></ul>')
$menuList .= $check;
$menuList .= '</li>';
}
}
return $menuList . '</ul>';
}
$catgories = array();
while ($row = mysqli_fetch_assoc($result)) {
$categories[] = array(
'ID' => $row['categoryId'],
'Name' => $row['categoryName'],
'Parent' => $row['parentCategory'],
'Disabled' => $row['disabled']
);
}
$menu = $this->menuPrint($categories);
echo $menu;
mysqli_close($connect);