- 我有一个包含两列的 LibreOffice Calc 文件:
id | new_price
- 我的 OpenCart 数据库表被调用
product
并具有以下相关列:id | price
我需要根据Calc 文件中的值price
在数据库中更新.id
new_price
我有 phpmyadmin 可用,但我不知道该怎么做。
你能指导我如何实现这一目标吗?
id | new_price
product
并具有以下相关列:id | price
我需要根据Calc 文件中的值price
在数据库中更新.id
new_price
我有 phpmyadmin 可用,但我不知道该怎么做。
你能指导我如何实现这一目标吗?
使用 phpmyadmin 中的导入功能将文件加载到新表中,假设调用new_table
然后执行:
UPDATE
product
SET
price =
(
SELECT
new_price
FROM
new_table
WHERE
new_table.id = product.product_id
)
WHERE
product.product_id IN
(
SELECT
id
FROM
new_table
)
好的,您有多种选择如何实现这一点。
phpMyAdmin
将文件导入新(临时)表并运行查询以使用新临时表中的值更新产品 - 查询检查Andrius 的答案。假设您坚持使用第一个选项(因为第三个选项已经回答,而第二个选项使用正确的解析器非常相似)并且最终的 CSV 文件如下所示:
1;25.900
3;19.990
11;5.250
...
现在您只需要加载文件并使用fgetcsv()
函数 - 检查 PHP 文档以了解如何使用它。在 while 循环中调用这个 SQL 查询:
$query = "UPDATE `" . DB_PREFIX . "product` SET `price` = {$line[1]} WHERE `product_id` = {$line[0]}";
假设在您的 while 循环中,a$line
是当前正在读取的 CSV 文件中的一行。
然后,您可以将该脚本用作新控制器(在其index
操作中),或者将其添加到您现有的产品控制器中作为新操作...
您需要学习如何在 php.ini 中读取文件。您需要提取每个 id 的价格并将其更新到数据库中。了解file-get-contents()函数。
加载数据并插入到您的 OpenCart 表中
将数据输入文件“../LibreOffice_Calc.txt”加载到表 OpenCart