id | new_price
product
,并包含以下相关列:id | price
我需要使用price
中的值,根据Calc文件中的id
更新数据库中的new_price
。
我有phpmyadmin可用,但我不知道该怎么做。
你能指导我如何实现这个目标吗?
答案 0 :(得分:0)
使用phpmyadmin中的import函数将文件加载到新表中,假设调用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
)
答案 1 :(得分:0)
好的,您有多种选择如何实现这一目标。
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循环中$line
是当前正在读取的CSV文件中的一行。
然后,您可以将脚本用作新控制器(在其index
操作中),或者将其作为新操作添加到您现有的产品控制器中......
答案 2 :(得分:-1)
你需要学习如何在php中读取文件。您需要提取每个id的价格并将其更新到数据库中。了解file-get-contents()功能。
答案 3 :(得分:-2)
加载数据并插入OpenCart表
LOAD DATA INFILE'../ LibreOffice_Calc.txt'INTO TABLE OpenCart