चाहता था मैं 2 टेबलपीएचपी शॉपिंग कार्ट - श्रेणियाँ पेज के रूप में
उत्पादों
और श्रेणियों
(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:
मैं इसे अपने दम पर हल कर लिया है। प्रयुक्त INNER JOIN
।
यहाँ कोड है - भविष्य में संदर्भ के लिए: ->
<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>
लेकिन अद्यतन 1 के बाद, मुझे लगता है मैं अन्य बग/त्रुटि के साथ आए हैं: ->
ऊपर प्रश्नों के अंदर अपडेट 1 ठीक काम करता है बशर्ते कि मूल श्रेणी में कोई उत्पाद न हो लेकिन बाल श्रेणी के अंदर उत्पाद हैं। यदि मूल श्रेणी (बाल श्रेणी रखने वाले) में उत्पाद हैं, तो मूल श्रेणी उत्पाद (ओं) दिखाए जाते हैं/दिखाए जाते हैं और केवल बाल श्रेणी उत्पाद दिखाए जाते हैं।
यदि उपयोगकर्ता अभिभावक श्रेणी पर क्लिक करता है तो मैं मूल श्रेणी के सभी उत्पादों और बाल श्रेणी के बच्चों को भी दिखाना चाहता हूं।
मैं इस बग/त्रुटि को कैसे हल करूं?
कृपया मुझे बाहर करने में मदद। मैं इसे 3 दिनों से आजमा रहा हूं .. –