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>