繁体   English   中英

从数据库动态导航

[英]Dynamic navigation from database

我的数据库中有2个表。 一种用于产品类别,另一种用于子类别。

子类别表的字段包含其父类别ID

现在,我正在尝试使用此信息创建导航,但正努力从数据库中仅获取具有子类别的类别。

表“类别”:

catID | catName | 活跃 图片

表“ subCategories”:

catID | catName | parentCatID | 活跃 图片

到目前为止,我已经尝试过了:

$sql = mysqli_query($con,'SELECT DISTINCT parentCatID FROM *****');
while($row = $sql->fetch_row()) {
  $rows[]=$row;
}                   
$res = join(',',$rows);
$sql2 = mysqli_query($con,"SELECT * FROM ***** WHERE categoryID IN '" . $res . "'");
while($results2 = mysqli_fetch_array($sql2)){
    echo $results2['categoryName'];
}

这不起作用,我看不到解决方案。 选择所有类别非常容易。 但我不希望那些没有子类别的人

以下查询应选择仅具有子类别的所有主要类别:

SELECT *, (SELECT count(*) FROM subCategories WHERE parentCatID = Categories.catID) as num FROM Categories WHERE num > 0

由于您没有给我们提供表名或列名,因此我将其命名为。 用您的实际表名和列名替换。

编辑现在在表/列名称中添加了一个架构。

我会使用INNER JOIN

SELECT *
FROM Categories
    INNER JOIN subCategories ON subCategories.parentCatID = Categories.catID AND subCategories.active = 1
WHERE Categories.active = 1
GROUP BY Categories.catID

经过修改以反映您的结构,您将需要根据设置方式更新“ active = 1”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM