2013-02-18 18 views
0

我有一個二維數組如下:與SQL語句的foreach在二維數組

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 

等等...

回答

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; 
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; 
    } 
} 

這是你在找什麼?

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"); 
    }