すべての情報category
を格納するテーブル[ and both] 、とを格納するテーブル、 との間の関係を格納するテーブルがあります。category
parent
child
category_child
parent
child
category relation
product_category
child_category
product
category
- すべてのカテゴリ {cid
、cname
、isParent
、status
} 列。category_child
- 実在 {parent_id
,child_id
}。category_product
- 関係 {product_id
,child_category_id
}product
- すべての商品の詳細 {pid
,pname
,pimage
,pprice
,pstock
}
フロントページにすべての親カテゴリリンクを表示しています。今、誰かが親カテゴリのリンクをクリックするたびにproduct
、それぞれから 4 つの情報を表示したいと考えています。child category
parent category
ここに私のコードがありますが、これは現時点では恐ろしいものです。可能な限り最小限に抑えるための助けを探しています。
$fetchChild = $mysqli->query("SELECT child_id from category_child where parent_id='".$mysqli->real_escape_string($pid)."'");
$listchild = array();
if($fetchChild->num_rows > 0) {
$n = 1;
while($storeChild = $fetchChild->fetch_assoc()) {
$listchild['child_id'][$n] = $mysqli->query("SELECT product_id from category_product where child_category_id='".$mysqli->real_escape_string($storeChild[$n])."'");
if($listchild['child_id'][$n]->num_rows > 0) {
$i = 1;
while($storeMore = $listchild['child_id'][$n]->fetch_assoc()) {
$listchild['product_id'][$i] = $mysqli->query("SELECT pid, pname, pimage, pprice, pstock from product where pid='".$mysqli->real_escape_string($storeMore[$i])."'");
if($listchild['child_id'][$n]['product_id'][$i]->num_rows > 0) {
$me = 1;
while($smeLast = $storeMore[$i]->fetch_assoc()) {
$listchild['child_id'][$n]['product_id'][$i]['pid'] = $smeLast['pid'];
$listchild['child_id'][$n]['product_id'][$i]['pid'] = $smeLast['pname'];
$listchild['child_id'][$n]['product_id'][$i]['pid'] = $smeLast['pimage'];
$listchild['child_id'][$n]['product_id'][$i]['pid'] = $smeLast['pprice'];
$listchild['child_id'][$n]['product_id'][$i]['pid'] = $smeLast['pstock'];
$me++;
}
} else {
echo '<meta http-equiv="refresh" content="0; url=index.php?error=Something+Went+Wrong+We+are+Fixing+it" />';
}
$listchild['product_id'][$i]->free();
$i++;
}
}
$listchild['child_id'][$n]->free();
$n++;
}
} else {
echo '<meta http-equiv="refresh" content="0; url=index.php" />';
}
$fetchChild->free();
私のコードでネストされたwhileとクエリを最小限に抑えるのに親切に助けてください。
ありがとう