我知道这个问题已被问过1000次,但请跟我说,因为我的情节略有不同。
基本上我加入了2个MYSQL表(一个叫做类别,另一个是产品),我在PHP页面中使用以下代码创建了类别和子类别菜单:
<?php
$subcategories="";
$sql3="SELECT products.di_cat, GROUP_CONCAT(products.di_name) as di_name
FROM products LEFT JOIN category ON products.di_cat=category.names
GROUP BY products.di_cat";
$query3 = mysqli_query($db_conx, $sql3);
$existCount3 = mysqli_num_rows($query3);
if ($existCount3!=0) {
while($row3 = mysqli_fetch_array($query3, MYSQLI_ASSOC)){
$make_names = $row3["di_cat"];
$make_model = $row3["di_name"];
$subcategories = explode(",",$make_model);
print '<div class="col-md-3">
<span class="mega-menu-sub-title">'.$make_names.'</span>
<ul class="sub-menu">
<li>
<ul class="sub-menu">';
foreach($subcategories as $sub){
print '<li><a href="view.php?p='.$sub.'">'.$sub.'</a></li>';
}
print '</ul></li></ul></div>';
}
}
?>
这样可以正常使用。
现在我在products
表中有一个名为url。
此列用于创建干净的URL,其内容基本上是没有任何空格或特殊字符的产品名称。
我想在上面的代码中使用它,但我不明白为什么每次我尝试使用下面的代码时,我只会在我的PHP页面中显示每个类别的1个子类别/产品,即使我有每个类别下100个产品!
这是我试过的:
<?php
$subcategories="";
$sql3="SELECT products.di_cat, products.url, GROUP_CONCAT(products.di_name) as di_name
FROM products LEFT JOIN category ON products.di_cat=category.names
GROUP BY products.di_cat";
$query3 = mysqli_query($db_conx, $sql3);
$existCount3 = mysqli_num_rows($query3);
if ($existCount3!=0) {
while($row3 = mysqli_fetch_array($query3, MYSQLI_ASSOC)){
$make_names = $row3["di_cat"];
$make_model = $row3["di_name"];
$make_url = $row3["url"];
$subcategories = explode(",",$make_url);
print '<div class="col-md-3">
<span class="mega-menu-sub-title">'.$make_names.'</span>
<ul class="sub-menu">
<li>
<ul class="sub-menu">';
foreach($subcategories as $sub){
print '<li><a href="view.php?p='.$make_url.'">'.$sub.'</a></li>';
}
print '</ul></li></ul></div>';
}
}
?>
有人可以就此问题提出建议吗?
任何帮助都将不胜感激。