下一步是我要构建的。获取我所有的菜单类别并显示它们,然后获取每个特殊类别的所有子类别也都显示它。我希望你明白我想说什么。我迷失在代码中,现在不知道该怎么做。这是我的代码,希望你能帮助我。
这是表结构。
子类表
|编号 |子类别名称 | id_类别 |
分类表
|编号 |类别 |
id_category与category表中的id关联
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
<?php
$pdo = connect();
$sql = "SELECT * FROM category";
$query = $pdo->prepare($sql);
$query->execute();
$row = $query->fetchAll();
foreach ($row as $rs) { ?>
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?php echo $rs['category'] ?><span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<?php
$sql = "SELECT subcategory.subcategory_name, subcategory.id_category, category.id, category.category
FROM subcategory
INNER JOIN category
WHERE subcategory.id_category = category.category";
$query = $pdo->prepare($sql);
$query->execute();
$subcat = $query->fetchAll();
foreach ($subcat as $sub) { ?>
<li><a href="#"><?php echo $sub['subcategory_name'] ?></a></li>
<?php } ?>
</ul>
</li>
<?php } ?>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="includes/logout.php">Logout</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div>
最佳答案
我想你只是没有理解 INNER JOIN sql select 语句。您必须声明第二个表与第一个表的关系:
SELECT column_list
FROM t1
INNER JOIN t2 ON join_condition1
WHERE where_conditions;
在您要放置查询的“subcategory.id_category = category.category”部分的位置加入条件。也许省略实际的 WHERE 子句? 希望能帮助到你。 看here
编辑: 我提出的建议是重写完整的代码以在一个查询中完成。但是您的代码可以像这样使用第一个 sql 查询捕获的变量快速简化:
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
<?php
$pdo = connect();
$sql = "SELECT * FROM category";
$query = $pdo->prepare($sql);
$query->execute();
$row = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($row as $rs) { ?>
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?php echo $rs['category'] ?><span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<?php
$sql = "SELECT subcategory_name, id_category
FROM subcategory
WHERE id_category = '".$rs['id']."'";
$query = $pdo->prepare($sql);
$query->execute();
$subcat = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($subcat as $sub) { ?>
<li><a href="#"><?php echo $sub['subcategory_name'] ?></a></li>
<?php } ?>
</ul>
</li>
<?php } ?>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="includes/logout.php">Logout</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div>
关于php - 在获取的类别中获取子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563382/