-2
私はカテゴリー製品と製品の分類に3テーブル構造を持っています。カテゴリテーブルには、3つのlvlのcat/subcat/subbcatがあります。カテゴリー別にデータベースを照会
tbl_catalog_categories tbl_products_to_categories
`id_category` smallint(6) `id_record`
`id_parent` smallint(6) `id_category`
`name` varchar(128) `id_product`
tbl_products
`id_product`
それでは、私はカテゴリtbl_catalog_categories
ための次のエントリを持っているとしましょう:
1 0 Books
2 1 Action
3 2 Cops
とリンクテーブルtbl_products_to_categories
は、私が欲しいもの
1 3 24
1 3 25
である私は、メインカテゴリを選択するときですサブカテゴリとサブサブカテゴリからすべての製品を取得する書籍。したがって、書籍を選択すると、結果は商品ID 24と25になります。ここで
は、私がしようと試みたものです、それは2つのLVLののための作業のだが、私は別の第三いずれかに参加して、私はそれだけで階層表現にあなたのリンクテーブルを変換
$stmt=$this->db->prepare("Select p.name
FROM tbl_products p
INNER JOIN tbl_products_to_categories ptoc on ptoc.id_product=p.id_product
INNER JOIN tbl_catalog_categories c1 on ptoc.id_category=c1.id_category
INNER JOIN tbl_catalog_categories c2 on c1.id_parent=c2.id_category
WHERE c2.name=:id and p.active=1 and p.quantity=1");
$stmt->bindParam(":id",$id);
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
}
何を試しましたか? – RiggsFolly
ヒント: 'JOIN'(2回必要です)。 –