<?php
$sql="SELECT * FROM categories WHERE parent = 0";
$pquery = $db->query($sql);
?>
<!-- Top NavBar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<a href="index.php" class="navbar-brand">Boutique</a>
<ul class="nav navbar-nav">
<?php while($parent = mysqli_fetch_assoc($pquery)) :?>
<?php
$parent_id = $parent['id'];
$sql2 = "SELECT * FORM categories WHERE parent = '$parent_id'";
$cquery = $db->query($sql2);
?>
<!-- Menu Items -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<?php echo $parent['category']; ?>
<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<?php while($child = mysqli_fetch_assoc($cquery)) : ?>
<li><a href="#"><?php echo $child['category'] ;?></a></li>
<?php endwhile; ?>
</ul>
</li>
<?php endwhile; ?>
</ul>
</div>
</nav>
在此代码中,只执行与父项0相关的第一部分,而与子类别相关的部分不起作用,并且出现以下错误:
警告:mysqli_fetch_assoc()期望参数1为mysqli_result, 第24行的C:\ xampp \ htdocs \ e \ includes \ navigation.php中给出的布尔值
我该如何解决? This is the result
答案 0 :(得分:1)
查询在结果集上返回布尔值。这可能是由于返回的空数据集。有可能出现SQL错误。 您可以在$ pquery和$ cquery之后回显mysqli_error()以检查执行查询时是否有错误。
您使用的是FORM而不是FROM 改变
&#34; SELECT * FORM类别WHERE parent =&#39; $ parent_id&#39;&#34;
到
&#34; SELECT * FROM categories WHERE parent =&#39; $ parent_id&#39;&#34;
答案 1 :(得分:0)
1 /您正在使用PDO($ db-&gt; query())并且您不应该混合使用mysqli和PDO,而是使用$ db-&gt; fetch。
2 /您有一个sql错误FROM
而不是FORM
<?php
$sql="SELECT * FROM categories WHERE parent = 0";
$pquery = $db->query($sql);
?>
<!-- Top NavBar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<a href="index.php" class="navbar-brand">Boutique</a>
<ul class="nav navbar-nav">
<?php while($parent = $pquery->fetch(PDO::FETCH_ASSOC)) :?>
<?php
$parent_id = $parent['id'];
$sql2 = "SELECT * FROM categories WHERE parent = '$parent_id'";
$cquery = $db->query($sql2);
?>
<!-- Menu Items -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<?php echo $parent['category']; ?>
<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<?php while($child = $cquery->fetch(PDO::FETCH_ASSOC)) : ?>
<li><a href="#"><?php echo $child['category'] ;?></a></li>
<?php endwhile; ?>
</ul>
</li>
<?php endwhile; ?>
</ul>
</div>
</nav>