mysqlデータベースに "inventory_item"という名前のテーブルがあります。 「id」、「product_category_id」および「quantity」は表の列です。 "id"は主キーで、レコードが挿入されると自動生成されます。mysqlデータベースのテーブルに存在しない場合は、複数のレコードを更新または挿入します
phpを使用してテーブルに複数のレコードを挿入するために作成されたsubmitボタンをクリックすると、product_category_idsのすべてのデータとその数量がforeachループで収集されます。
このように、複数のレコードを同時に挿入する必要があります。新しいレコードとして挿入しないで「product_category_id」がすでにテーブルに存在する場合にのみ、数量を更新する必要があります。
コードブロックは、ここでは..です
foreach ($dataArray as $value) {
$pcid = $value["pcid"];
$quantity = $value["quantity"];
$sql = "SELECT * FROM inventory_item WHERE product_category_id='$pcid'";
$result = $conn->query($sql);
$row = mysqli_fetch_assoc($result);
$currentQuantity = $row['quantity'];
$newQuantity = $quantity + $currentQuantity;
if ($result == true) {
$sql2 = "IF EXISTS (SELECT * FROM inventory_item WHERE product_category_id='$pcid') UPDATE inventory_item SET quantity=$newQuantity WHERE product_category_id=’$pcid’ ELSE INSERT INTO inventory_item (product_category_id, quantity) VALUES ('$pcid', '$quantity')";
$result = $conn->query($sql2);
} else {
echo 'error';
}
}
可能重複配向更新[MySQLの更新を、またはすでにテーブルに存在しない場合は、複数のレコードを挿入](HTTP挿入.com/questions/40945361/mysql-update-or-insert-multiple-records-if-already-in-a-table) –