使用“reindexed”数组更新MySQL数据库

时间:2012-07-16 15:59:30

标签: mysql arrays

我正在开发一个项目,我需要使用数组的值更新数据库。起始值必须为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());
}


这是打印时阵列的一部分。这部分正在运行,但没有翻译更新查询。

Array


这就是数据库中条目的更新方式。

Database


如您所见,查询仅插入从2开始的数组值。

我做错了什么?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

重新编号$rowPrice 之后开始迭代它。

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

然而,这种方法似乎很脆弱,因为它假设了数组中的值与数据库中的ID之间的关联。最好在阵列中使用原始ID,以便在更新期间引用它们。