2012-07-16 97 views
1

我正在开发一个项目,我需要用数组的值更新数据库。起始值必须为1,而不是0,以便使用更新查询选择正确的数据库条目。用“reindexed”数组更新MySQL数据库

当我打印数组(如下所示)时,结果以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

重建索引$rowPrice之前你开始迭代它。

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

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

+0

谢谢。我知道我很接近!你的建议也很感谢。我现在正在为此工作。 – localhost 2012-07-16 16:27:49