2016-04-07 11 views
0

数値である列の値に応じて、あるテーブルから別のテーブルに複数の行を移動する必要があります。PHP/MYSQL複数の行をテーブルから挿入するトランザクションを使用する1つの条件

$order_code = '8888'; 
$conn->autocommit(false); 

$sqlTranInsert = "SELECT * FROM shop_inventory WHERE item_order_code ='$order_code'"; 

if(!$resultTranInsert = $conn->query($sqlTranInsert)){ 
    echo 'Error '.$conn->error; 
    $conn->close(); 
    exit; 
} 

while($row = $resultTranInsert->fetch_assoc()){ 
    $inve_id = $row['inve_id']; 
    $sqlTranInsertItems = "INSERT INTO shop_inventory_archive SELECT * FROM shop_inventory WHERE inve_id = '$inve_id'"; 
    if(!$resultTranInsertItems = $conn->query($sqlTranInsertItems)){ 
     echo 'Error '.$conn->error; 
     $conn->close(); 
     exit; 
    } 
} 

$conn->commit(); 
$conn->close(); 
echo $msg; 
exit; 

私の問題は、これはまったく動作しないし、WHILEループについてはわからないし、問題があると確信しています。助けてくれてありがとう。

ご挨拶。

+0

whileループでinsert文を実行しますか?あなたは$ conn->問い合わせの呼び出しがありません –

+0

私のコードを貼り付けたとき、私の悪いねえ。私は質問を更新しました。 – Diego

+0

ループの挿入後にエコーラインからエラーが発生しますか? –

答えて

0

我々は、別のテーブルから既存のテーブルをすべての列をコピーすることができます。

INSERT INTO table2 
SELECT * FROM table1; 

それとも私たちは別の、既存の表に、私たちがしたい列のみをコピーすることができます:あなたは

INSERT INTO table2 
(column_name(s)) 
SELECT column_name(s) 
FROM table1; 
+0

あなたのお手伝いをしています。テーブル全体または特定の列を別のテーブルに貼り付ける必要はありません。私はいくつかの行で同じ列の値に応じてTABLE 2からいくつかの行をTABLE 1に挿入する必要があります。 – Diego

関連する問題