Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP购物车-类别页面无法正常工作_Php_Mysql_Shopping Cart_Cart - Fatal编程技术网

PHP购物车-类别页面无法正常工作

PHP购物车-类别页面无法正常工作,php,mysql,shopping-cart,cart,Php,Mysql,Shopping Cart,Cart,我有两张桌子 产品 和类别 (CatParentId 0是父类别) 我试图实现的是,当用户单击父类别时,它应该获取该类别中列出的产品及其子类别产品,如果用户单击任何子类别,它应该仅获取子类别中列出的产品 以下是我迄今为止使用过的完整代码,但没有成功: <section class="col-lg-9 col-md-9 col-sm-9"> <?php $catId = $catName = $n = ""; $id = 0; require_o

我有两张桌子

产品

和类别

(CatParentId 0是父类别)

我试图实现的是,当用户单击父类别时,它应该获取该类别中列出的产品及其子类别产品,如果用户单击任何子类别,它应该仅获取子类别中列出的产品

以下是我迄今为止使用过的完整代码,但没有成功:

<section class="col-lg-9 col-md-9 col-sm-9">
    <?php
    $catId = $catName = $n = "";
    $id = 0;
    require_once 'Classes/class.Validation.php';
    $validate = new Validation();
    if ( isset( $_GET['name'] ) && $_GET['name'] != "" ) {
        $catName = $_GET['name'];
        $u = "SELECT CatId, CatName, CatParentId FROM categories WHERE CatName = '".$catName."'";
        $validate->Query($u);
        if ($validate->NumRows() >= 1) {
            while ($rows = $validate->FetchAllDatas()) {
                $id = $rows['CatId'];
                $n = $rows['CatName'];
                $query = "SELECT
                              c.CatName,
                              p.ProdCode,
                              p.ProdName
                          FROM
                              products p,
                              categories c
                          WHERE
                              c.CatId = p.CatId
                              AND
                              c.CatParentId = '".$id."'";
                $validate->Query($query);
                if ($validate->NumRows() >= 1) {
                    while ($row = $validate->FetchAllDatas()) {
                        // show products here
                    }
                } else {
                    $query = "SELECT
                                  c.CatName,
                                  p.ProdCode,
                                  p.ProdName
                              FROM
                                  products p,
                                  categories c
                              WHERE
                                  c.CatParentId = p.CatId
                                  AND
                                  c.CatId = '".$id."'
                              ";
                    $validate->Query($query);
                    if ($validate->NumRows() >= 1) {
                        while ($row = $validate->FetchAllDatas()) {
                            // show products here
                        }
                    }
                }

            }
        }
    }
    ?>
</section>
但是在更新1之后,我想我已经发现了其他的错误

如果父类别中根本没有产品,但子类别中有产品,则更新1中的上述查询工作正常。如果父类别(具有子类别)中存在产品,则不显示父类别产品,而只显示子类别产品

我想显示父类别的所有产品,如果用户单击父类别,还可以显示子类别的所有产品


如何解决此错误?

请帮助我解决。我已经试了三天了。我很好奇为什么当时没有人回答这个问题?
<section class="col-lg-9 col-md-9 col-sm-9">
    <?php
    $catId = $catName = $n = "";
    $id = 0;
    require_once 'Classes/class.Validation.php';
    $validate = new Validation('benef8w7_ecommerce');
    if ( isset( $_GET['name'] ) && $_GET['name'] != "" ) {
        $catName = $_GET['name'];
        $query = "SELECT
                      p.ProdCode,
                      p.ProdRate,
                      c1.CatId,
                      c1.CatName,
                      c2.CatParentId
                  FROM
                      categories c2
                          INNER JOIN
                              categories c1
                          ON
                              c2.CatId = c1.CatParentId
                                  INNER JOIN
                                      products p
                                  ON
                                      p.CatId = c1.CatId
                  WHERE
                      c2.CatName = '".$catName."'";
        $validate->Query($query);
        if ($validate->NumRows() >= 1) {
            while ($row = $validate->FetchAllDatas()) {
                // show all the products here for both parent and child categories.
            }
        } else {
            $query = "SELECT
                          p.ProdCode,
                          p.ProdName,
                          c.CatId,
                          c.CatParentId,
                          c.CatName
                      FROM
                          products p
                               INNER JOIN
                                   categories c
                               ON
                                   c.CatId = p.CatId
                      WHERE
                          c.CatName = '".$catName."'";
            $validate->Query($query);
            if ($validate->NumRows() >= 1) {
                while ($row = $validate->FetchAllDatas()) {
                    // show products here if there are no child categories.
                }
            }
        }
    }
    ?>
</section>