我得到了一个 $_POST 参数如下:
Array ( [qty-1] => 1 [uniprice-1] => 22.00 [qty-2] => 2 [uniprice-2] => 12.00 )
使用 SQL 更新数据库:
foreach($_POST as $key => $value) {
$q = "UPDATE `table` SET ";
$q .= "stock=stock + '".$value."', ";
$q .= "price='".$value."' ";
$q .= "WHERE fid='".$fid."' AND vid='".$key."'";
echo $q.'<br />';
}
但是它的输出:
UPDATE `stock` SET stock=stock + '1', price='1' WHERE fid='9' AND vid='1'
UPDATE `stock` SET stock=stock + '22.00', price='22.00' WHERE fid='9' AND vid='1'
UPDATE `stock` SET stock=stock + '2', price='2' WHERE fid='9' AND vid='2'
UPDATE `stock` SET stock=stock + '12.00', price='12.00' WHERE fid='9' AND vid='2'
以如下形式更新查询的正确方法是什么?
UPDATE `stock` SET stock=stock + '1', price='22.00' WHERE fid='9' AND vid='1'
UPDATE `stock` SET stock=stock + '2', price='12.00' WHERE fid='9' AND vid='2'
最佳答案
试试这个
<?php
// Input
$_POST['qty-1']=1;$_POST['uniprice-1']=22.00;$_POST['qty-2']=2;$_POST['uniprice-2']=12.00;
$x=0;$fid=9;
foreach($_POST as $key => $value) {
$q = "UPDATE `table` SET ";
$key=str_replace("qty-","",$key);
$value2=str_replace("uniprice-","",$key);
$q .= "stock=stock + '".$value2."', ";
if($x%2!=0)
{
$q .= "price='".$value."' ";
$q .= "WHERE fid='".$fid."' AND vid='".$fkey."'";
echo $q.'<br />';
}
$fkey=$key;
$x++;
}
?>
关于PHP批量更新$_POST值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33389864/