2013-07-11 49 views

回答

1

您有几种方法可以实现这一目标,但就性能而言,它主要取决于目录的大小。

这是写在SQL的例子,这将是非常快的,并且确保所选择的产品有活跃:

$products_categories = Db::getInstance()->ExecuteS(' 
SELECT cp.id_product, pl.name product_name 
FROM '._DB_PREFIX_.'category_product cp 
LEFT JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category) 
LEFT JOIN '._DB_PREFIX_.'product p ON (p.id_product = cp.id_product) 
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product) 
WHERE cp.id_category = 3 AND p.active = 1 AND c.active = 1 and pl.id_lang = 1 AND cp.id_product IN (SELECT id_product FROM '._DB_PREFIX_.'category_product WHERE id_category = 8)'); 
+0

啊OK,子查询。 Yess,可以。我从来没有考虑过,因为我在SQL中不太聪明:P谢谢! 然后呢?我对prestashop相当陌生,因此很多担心都在我脑海中旋转。我流浪了,你的意思是我会建立一个新的控制器并将$ products_categories传递给$ smarty?这将是非常简单的,但它会是安全的,随后的行动(例如添加到购物车的产品,进一步过滤块状模块等)。我的意思是,这是一种常见的做法吗? – Stratboy

相关问题