我正在做一个项目,我需要用数组的值更新数据库。起始值必须为1,而不是0,以便使用更新查询选择正确的数据库条目。
当我打印数组(如下所示)时,结果从值1开始返回,但数据库没有正确更新。数据库仍在使用数组的0值进行更新。

foreach($rowPrice as $priceID => $price) {
 $rowPrice = array_combine(range(1, count($rowPrice)), array_values($rowPrice));
  mysql_query("UPDATE ---- SET price='$price' WHERE id='$priceID' AND store_id='$store' LIMIT 1") or die (mysql_error());
}

这是打印时数组的一部分。此部分正在工作,但无法通过更新查询进行转换。
数据库中的条目就是这样更新的。
如您所见,查询只插入从2开始的数组值。
我做错什么了?有更好的办法吗?

最佳答案

在开始迭代之前,重新编制$rowPrice索引。

$rowPrice = array_combine(range(1, count($rowPrice)), array_values($rowPrice));
foreach($rowPrice as $priceID => $price) {
    mysql_query(...);
}

然而,这个方法看起来很脆弱,因为它假设数组中的值和数据库中的id之间的关联。最好将原始id放在数组中,以便在更新期间引用它们。

关于mysql - 使用“重新索引”数组更新MySQL数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11508050/

10-12 23:17