鍍金池/ 問答/PHP  數(shù)據(jù)庫(kù)/ 批量更新到數(shù)據(jù)庫(kù)?

批量更新到數(shù)據(jù)庫(kù)?

我遇到了一個(gè)批量更新的問題
假設(shè)我是一個(gè)迴圈印出了價(jià)格和商品ID

while($row = mysqli_fetch_array($data)){ 
<input type="hidden" name="cart_prod_id[]" value="<?=$row['prod_id'];?>">
<input type="hidden" name="cart_quantity[]" value="<?=$row['quan'];?>">
}

我要修改某數(shù)據(jù)表的商品資訊
假設(shè)打印出來是這樣:
商品ID/數(shù)量

12 / 2
13 / 1
14 / 5

當(dāng)我要改其中一個(gè)商品的數(shù)量,我要把13改成數(shù)量10
我另一方接收的代碼是怎麼寫才對(duì)?
要更新給數(shù)據(jù)庫(kù)
我知道是這個(gè)樣子:

foreach ... 
"UPDATE `user_cart`
        SET `quan` = {$quan}
        WHERE `prod_id` = '{$prod_id}' "

但我要怎麼取得每個(gè) prod_id 和 quan ?怎麼對(duì)應(yīng)才對(duì)?

prod_id = 12, quan = '2'
prod_id = 13, quan = '10'
prod_id = 14, quan = '5'

我對(duì)這種批次上傳太弱了,第一次接觸
請(qǐng)多包涵

回答
編輯回答
瘋浪

你的問題似乎用不著數(shù)組

<?php
if(!empty($_POST)){

    foreach ($_POST as $k=>$v){
        if(strstr($k, "product_")){
            $k = substr($k, strlen("product_"));
            
            echo "update product_table set value=$v where id=$k;<br />";
        }
    }
    
    exit();
}
?>

<form method="post">
    
    <?php 
        $arr= array(
            array('id'=>1,'value'=>3),
            array('id'=>2,'value'=>4),
            array('id'=>3,'value'=>5),
        );
        
        foreach($arr as $val){
            ?>
    <label>商品:<?=$val['id']?></label><input type="text" value="<?=$val['value']?>" name="product_<?=$val['id']?>" /><br> 
            <?php
        }
    ?>
                   <input type="submit" />
</form>

clipboard.png

clipboard.png

2018年7月5日 19:28
編輯回答
做不到
INSERT INTO `user_cart` (`prod_id`, `quan`)
VALUES (12, 2),
    (13, 1),
    (14, 5)
ON DUPLICATE KEY UPDATE `quan` = VALUES(`quan`);
2017年4月19日 05:37