在MySQL数据库中更新价格 我有一个LibreOffice计算文件,有两列:id | new|u price 我的OpenCart数据库表名为product,具有以下相关列:id | price
我需要根据计算文件中的在MySQL数据库中更新价格 我有一个LibreOffice计算文件,有两列:id | new|u price 我的OpenCart数据库表名为product,具有以下相关列:id | price,mysql,phpmyadmin,opencart,Mysql,Phpmyadmin,Opencart,我需要根据计算文件中的id和new\u price中的值更新数据库中的price 我有phpmyadmin可用,但我不知道如何做到这一点 您能指导我如何实现这一点吗?您需要学习如何用php读取文件。您需要提取每个id的价格并将其更新到数据库中。了解函数。使用phpmyadmin中的导入函数将文件加载到一个新表中,例如调用new\u table,然后执行: UPDATE product SET price = ( SELECT
id
和new\u price
中的值更新数据库中的price
我有phpmyadmin可用,但我不知道如何做到这一点
您能指导我如何实现这一点吗?您需要学习如何用php读取文件。您需要提取每个id的价格并将其更新到数据库中。了解函数。使用phpmyadmin中的导入函数将文件加载到一个新表中,例如调用
new\u 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
)
加载数据并插入到OpenCart表中
将数据填充“../LibreOffice\u Calc.txt”加载到OpenCart表中好的,您有多个选项来实现这一点
phpMyAdmin
将文件导入新的(临时)表,并运行查询以使用新临时表中的值更新产品-用于查询检查Andrius的答案1;25.900
3;19.990
11;5.250
...
现在您只需要加载文件并使用函数-检查PHP文档以了解如何使用它。在while循环中,只需调用以下SQL查询:
$query = "UPDATE `" . DB_PREFIX . "product` SET `price` = {$line[1]} WHERE `product_id` = {$line[0]}";
假设在while循环中,$line
是当前正在读取的CSV文件中的一行
然后,您可以将脚本用作新的控制器(在它的
索引中
action`),或者将其作为新的操作添加到现有的产品控制器中……您的回答没有说明解决方案。使用file\u get\u contetns()
确实是不够的。尝试改进你的答案!这将尝试插入新值。如果他将此用于产品
表,则会导致错误。尝试改进你的答案…非常感谢你的建议。我在db的测试副本上做了这个。它产生了不必要的影响,即旧_表中所有不在新_表中的价格都被设置为0…@user2298034我已经编辑了查询,现在检查它-它应该可以工作了。感谢更新脚本。但仍然有一个不必要的影响,即新表中不存在的所有产品的价格都为0。我在脚本中添加了一个WHERE
部分,以消除不必要的影响。有很多方法,但这可能是最简单的:)希望,现在一切都适合你:)非常感谢。问题解决:)非常感谢您的帮助。非常感谢您的帮助,shadyyx。我认为方法3现在是最相关的——但有了#1,我可以更容易地在未来更新价格。问题仍然是#3中的查询仍然更新所有价格。新的价格只有一个子集的总产品。并且所有未包含在新价格中的产品都设置为0…@user2298034 Andrius添加了一个条件,其中条件应能明确解决问题;-)是的,#1
解决方案在将来是可重复使用的,而使用#3
您将不得不每次清理和重新导入数据…非常感谢,我现在已经整理好了。你们都很有帮助。@user2298034然后点击+1查看对你们有帮助的内容;-)