Ik ben bezig met het maken van een menu systeem voor mijn website. Ik heb een functie die een naam, link en parent opslaat in een database. Dit werkt perfect. Wanneer ik het menu wil weergeven, krijg ik echter verschillende warnings de zien. Een voorbeeld:
Warning: Illegal string offset ...De code wat voor de warning zorgt:
<?php
function displayMenuBeheer()
{
global $mysqli,$db_table_prefix,$baseUrl;
$stmt = $mysqli->prepare("SELECT * FROM ".$db_table_prefix."menu_beheer");
$result = $stmt->execute();
$stmt->bind_result($id,$name,$link,$parent);
while($stmt->fetch()) {
$row = array("id" => $id,"name" => $name, "link" => $link, "parent" => $parent);
}
foreach($row as $item) {
$html = "<ul class='nav' id='side-menu'>";
if($item['parent'] == 0) {
$html .= "<li><a href='".$baseUrl."".$item['link']."'>".$item['name']."</a></li>";
if($item['parent'] > 0 && $item['parent'] == $item['id']) {
$html .= "<ul class='nav nav-second-level'>";
$html .= "<li><a href='".$baseUrl."".$item['link']."'>".$item['name']."</a></li>";
$html .= "</ul>";
}
}
}
$html .= "</ul>";
}
?>
De code die voor de problemen zorgt:
[code]
<?php
if($item['parent'] == 0) {
$html .= "<li><a href='".$baseUrl."".$item['link']."'>".$item['name']."</a></li>";
if($item['parent'] > 0 && $item['parent'] == $item['id']) {
?>
Weet iemand waar de fout in bovenstaande code zit?
Ik heb de code verder nog niet getest omdat ik geen output zie. De record die in de database staan worden dus ook niet weergegeven. Wanneer je dus tips hebt over hoe ik de code kan verbeteren, zijn die natuurlijk welkom!