目标:获取一级栏目以及该栏目下的二级栏目内容
以下是循环部分的代码:
<?php
$sql1 = "SELECT * FROM `#@__infoclass` WHERE length (parentstr)=5 AND checkinfo=true ORDER BY orderid aSC LIMIT 0,2";
$dosql->Execute($sql1, 1);
while ($row = $dosql->GetArray(1)) {
?>
<li class="layui-nav-item">
<!-- 1、父级栏目-->
<a href="<?php echo $row['linkurl'] . '&classname=' . $row['classname']; ?>" target="myiframe"><?php echo $row['classname']; ?></a>
<!-- 2、子类栏目 嵌套循环 -->
<?php
$sql2 = "SELECT * FROM `#@__infoclass` WHERE parentid=" . $row['id'];
$dosql->Execute($sql2, 2);
while ($row2 = $dosql->GetArray(2)) {
?>
<dl class="layui-nav-child">
<dd>
<a href="<?php echo $row2['linkurl'] . '&classname=' . $row2['classname']; ?>" target="myiframe">
<?php echo $row2['classname']; ?>
</a>
</dd>
</dl>
<?php } ?>
</li>
<?php } ?>
附上截图
我这理的第一层while循环是获取一级栏目的内容。
然后把一级栏目的id作为二级栏目的父id条件,进行第二层while循环,最后拿到对应栏目下的内容。
注意事项:
多层while循环,使用 $dosql->Execute()来执行查询时,要添加一个唯一标示来区分开嵌套语句与记录集。因此上面我的代码中 就用 “1” 作为父类查询的语句及记录集,使用“2”作为子栏目的语句及记录集。
这个id的值可用自定义,不要重复就行。
参考官网上的常见问题的:PHPMyWind 帮助