私の問題は次のとおりです。複数の項目を同時にテーブルに追加したいと思います。これは在庫システムであり、購買発注に応じて明細が追加されます。私は同時に3つのテーブルを更新したい。第1の表は請求書データに関連し、第2の表は受信した明細の詳細に関する。 3番目の表は、現在の株式に関連しています。PHPのループでON DUPLICATE UPDATE KEYを使用することはできますか?
現在の在庫表に追加する項目がすでに存在する場合は更新する必要があり、存在しない場合は現在の在庫表に追加する必要があります。私はテーブルに項目を追加するために動的に生成されたテキストボックスを使用します。しかし、私はON DUPLICATE UPDATE KEY
のforループでクエリを実行することができません。私のコードは次の通りです。
if (is_array($qty) && ($item)) {
for ($i = 0; $i < sizeof($qty); $i++) {
$query2 = "INSERT INTO received_items (po_id,invoice_number,item_name,qty)VALUES($id,'$invoice',$item[$i]',$qty[$i])";
$query3="INSERT INTO current_stock (item-name,Qty) VALUES('$item[$i]',$qty[$i]) ON DUPLICATE KEY UPDATE item-name='$item[$i]',qty=qty+$qty[$i]";
$result_1 = mysqli_query($conn, $query2);
$result_2 = mysqli_query($conn, $query3);
if (($result_1)&&($result_2)) {
echo '<script type="text/javascript">';
echo 'alert("Sucessfully Updated your Details");';
echo 'window.location = "../htdocs/dashbd.php";';
echo '</script>';
}else{
echo '<script type="text/javascript">';
echo 'alert("Failed to Update Your details.Try Again");';
echo 'window.location = "../htdocs/received_item.php";';
echo '</script>';
}
}
}
あなたの 'current_stock'テーブルにはどのようなキーがありますか? – RiggsFolly
'SHOW CREATE TABLE current_stock'の出力を表示してください – RiggsFolly
item nameはcurrent_stockテーブルの主キーです.... Item_nameとqtyの2つの列しかありません。 –