在MySQL中连接表和子查询

时间:2018-03-01 16:06:55

标签: php mysql

我知道这个问题已被问过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>';
    }
}
?>

有人可以就此问题提出建议吗?

任何帮助都将不胜感激。

0 个答案:

没有答案