1

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

我究竟做错了什么?有一个更好的方法吗?

4

1 回答 1

1

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

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

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

于 2012-07-16T16:23:55.437 回答