我正在开发一个项目,我需要使用数组的值更新数据库。起始值必须为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开始的数组值。
我做错了什么?有更好的方法吗?
答案 0 :(得分:1)
重新编号$rowPrice
之后开始迭代它。
$rowPrice = array_combine(range(1, count($rowPrice)), array_values($rowPrice));
foreach($rowPrice as $priceID => $price) {
mysql_query(...);
}
然而,这种方法似乎很脆弱,因为它假设了数组中的值与数据库中的ID之间的关联。最好在阵列中使用原始ID,以便在更新期间引用它们。