批量产品类别更新(向所有产品添加“家庭”类别)- Prestashop 1.6.0.6

Adi*_*oui 2 php sql prestashop prestashop-1.6

我观察到所有产品的数量不等于 category 中的产品数量home。这是因为在产品添加过程中并不总是选择这个最大的父类别。所以有些产品属于home但有些不属于。

虽然我需要为类别home页面显示正确数量的产品,但我正在数据库中查找包含类别但未在ps_product或 中 找到它们的列ps_product_lang

可以批量修改数据库中相应字段的sql查询背后的想法是什么,以便我的所有产品都属于 category home

感谢您通常的帮助。谢谢你。

编辑: 我发现数据库中的表是ps_category_product. 它是唯一的吗?

这张表是这样的:

+-------------+------------+----------+
| id_category | id_product | position |
+-------------+------------+----------+
|          11 |          1 |        1 |
|          11 |          2 |        2 |
|          11 |         10 |        3 |
+-------------+------------+----------+
Run Code Online (Sandbox Code Playgroud)

我可能需要创建 x 行(x = 产品数量)。每行都有 id_category=1 和 id_product= product id 和 position= position++。是最好的方法吗?

关于如何在 sql 中实现它的任何帮助?

再次感谢。

yen*_*rak 5

您可以Home使用简单的 SQL 查询将每个产品分配到该类别:

INSERT IGNORE INTO ps_category_product SELECT 2, id_product, 0 FROM ps_product
Run Code Online (Sandbox Code Playgroud)

2通常是类别的id_categoryHome0position

如果您想要唯一position值,那么您需要一个更复杂的查询:

INSERT IGNORE INTO ps_category_product SELECT 2, id_product, ((SELECT MAX(position) FROM ps_category_product WHERE id_category = 2) + (@inc := @inc + 1)) FROM ps_product INNER JOIN (SELECT @inc := 0) AS i
Run Code Online (Sandbox Code Playgroud)