我试图获取不同的类别名称,并使用PHP从mysql数据库中获取与每个类别名称相关的所有子类别。PHP:不同的类别和多个子类别?
所以我需要它看起来像这样:
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>';
,但我仍然得到一些奇怪的输出和子类别下无关类别会!
请您分享你的结构,如果有两张表..i.e。,加入 –