0

再帰関数を使ってメニューを印刷しようとしています。私はこれらの質問からのコードの例を使用しました:

再帰機能を備えたエコーメニューツリー

データベーステーブルから多次元配列を作成する

コードは私には正しいように見え、構文的には正しいのですが、結果として空白のページが表示されます。エラーはありませんが、この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);
4

0 に答える 0