0

我有一个二维数组,如下所示:

Array(
[1] =>  Array
      (
        [0] => 15956,3
        [1] => 15984,0.13
        [2] => 15940,1
      )

[2] => Array
    (
        [0] => 15918,0.5
        [1] => 15970,0.5
        [2] => 15902,0.5
        [3] => 15943,0.5
    )

我将如何集成一个 foreach 循环来遍历数组的每个子元素并生成动态 sql 语句......例如:

UPDATE main_stock SET on_hand -= 3 WHERE Rcode = 15918
UPDATE main_stock SET on_hand -= 0.13 WHERE Rcode = 15984

等等...

4

3 回答 3

0

您可以将这些值组合为临时表或子查询,然后UPDATE像这样连接两个表:

UPDATE main_stock m
INNER JOIN
(
   SELECT 15956 AS Rcode, 3 on_hand
   UNION ALL
   ...
) AS t ON m.on_hand = t.on_hand 
SET m.on_hand -= t.on_hand;
于 2013-02-18T13:21:12.713 回答
0
foreach ($array as $subArr) { // Goes through each array of the main array
    foreach ($subArr as $val) { // Goes through each sub array's values
        $sql = "UPDATE `main_stock` SET `on_hand` = 3 WHERE `Rcode` = " . $val;
    }
}

那是你要找的吗?

于 2013-02-18T13:21:37.987 回答
0

$iar是输入数组。

foreach( $iar as $tar )
    foreach($tar as $line)
    {
        list($id,$value) = split(",",$line);
        mysql_query("UPDATE main_stock SET on_hand -= $value WHERE Rcode = $id");
    }
于 2013-02-18T13:30:50.317 回答