【发布时间】:2015-09-25 12:18:36
【问题描述】:
我正在尝试使用 PHP 从 mysql 数据库中获取不同的类别名称并获取与每个类别名称相关的所有子类别。
所以我需要它看起来像这样:
Cat1
sub_cat1
sub_cat2
sub_cat3
Cat2
sub_cat1
sub_cat2
Cat3
sub_cat1
sub_cat2
sub_cat3
sub_cat4
这是我的代码:
$subs = "";
$header_list = "";
$sql2 ="SELECT * FROM sub_cats GROUP BY cat_name";
$query2 = mysqli_query($db_conx, $sql2);
$productCount = mysqli_num_rows($query2); // count the output amount
if ($productCount > 0) {
while($row = mysqli_fetch_array($query2, MYSQLI_ASSOC)){
$scid = $row["id"];
$scat_name = $row["cat_name"];
$scsub_cat_name = $row["sub_cat_name"];
foreach ((array) $scsub_cat_name as $item) {
$subs .='<li>
<a href="printing-products/standard-business-cards-range25d3.html?productTypeId=3#?pt=3&lt=1&ps=57&pat=4&prt=1">'.$scsub_cat_name.' <i class="fa fa-angle-double-right pull-right"></i></a>
</li>';
}
$header_list .= '<li class="product-types">
<span class="heading">'.$scat_name.'</span>
<ul class="product-options">
'.$subs.'
</ul>
</li>';
/*foreach ((array) $cat_name as $item) {}*/
}
} else {
$header_list = "";
}
echo $header_list ;
我面临的问题是它会正确地获得不同的类别,但它不会正确地获得与每个类别相关的子类别,并且会将它们放在不同的类别下!
所有类别和子类别都存储在 mysql 数据库的同一张表中,如下所示:
id cat_name sub_cat_name
1 cat1 subcat1
2 cat1 subcat2
3 cat1 subcat3
4 cat2 subcat1
5 cat2 subcat2
etc etc.....
有人可以就这个问题提出建议吗?
任何帮助将不胜感激。
编辑:
这就是我所做的,我在 mysql 数据库中创建了第三个表 table_cat_sub_cat:
$sql2 ="SELECT catgories.cat_name, sub_cats.sub_cat_name
FROM catgories
INNER JOIN table_cat_sub_cat ON catgories.id=table_cat_sub_cat.cat_id
INNER JOIN sub_cats ON table_cat_sub_cat.sub_cat_id = sub_cats.id";
$query2 = mysqli_query($db_conx, $sql2);
$productCount = mysqli_num_rows($query2); // count the output amount
if ($productCount > 0) {
while($row = mysqli_fetch_array($query2, MYSQLI_ASSOC)){
//$scid = $row["id"];
$scat_name = $row["cat_name"];
$scsub_cat_name = $row["sub_cat_name"];
foreach ((array) $scsub_cat_name as $item) {
$subs .='<li>
<a href="printing-products/standard-business-cards-range25d3.html?productTypeId=3#?pt=3&lt=1&ps=57&pat=4&prt=1">'.$scsub_cat_name.' <i class="fa fa-angle-double-right pull-right"></i></a>
</li>';
}
$header_list .= '<li class="product-types">
<span class="heading">'.$scat_name.'</span>
<ul class="product-options">
'.$subs.'
</ul>
</li>';
但我仍然得到一些奇怪的输出,并且子类别属于不相关的类别!
【问题讨论】:
-
如果有两张表,请分享您的结构..即加入