iT邦幫忙

0

如何批量更新?產品ID與數量

我遇到了一個批量更新的問題
假設我是一個迴圈印出了價格和商品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'];?>">
}

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

12 / 2
13 / 1
14 / 5

當我要改其中一個商品的數量,我要把13改成數量10
我另一方接收的代碼是怎麼寫才對?
要更新給數據庫
我知道是這個樣子:

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

但我要怎麼取得每個 prod_id 和 quan ?怎麼對應才對?

prod_id = 12, quan = '2'
prod_id = 13, quan = '10'
prod_id = 14, quan = '5'
我對這種批次上傳太弱了,第一次接觸
請多包涵

1 個回答

1
kksugsay
iT邦新手 1 級 ‧ 2018-06-28 11:12:49
最佳解答

大概是這樣,剩下就套用你的php就可以了

$i = 0;
foreach($_POST["cart_prod_id"] as $value){
    $quan = $_POST["cart_quantity"][$i];
    $sql = "UPDATE `user_cart` SET `quan` = $quan WHERE `prod_id` = '{$value}' ";
    $result = $db->prepare($sql);
    $result->execute();	
    $i++;
}

再加一個就是 $POST["hidden_name"], 它就是個array,無法回覆了,沒問題就結案吧~
請參考 array用法 http://www.wibibi.com/info.php?tid=80

看更多先前的回應...收起先前的回應...
asys0512 iT邦新手 2 級 ‧ 2018-06-28 11:36:36 檢舉

我發現沒有修改~我有加上 query 了

$i = 0;
    foreach($_POST["cart_prod_id"] as $value){
        $pdo->query("UPDATE `user_cart`
        SET `quan` = {$_POST["cart_quantity"][$i]}
        WHERE `prod_id` = '{$value}' ");
        $i++;
    }

正想問你原理是什麼,不過好像無法運行

kksugsay iT邦新手 1 級 ‧ 2018-06-28 11:38:30 檢舉

你用的是query吧,當然不會更新,改了你試試~
$POST["cartprodid"] 傳到後端是個array
/images/emoticon/emoticon06.gif

asys0512 iT邦新手 2 級 ‧ 2018-06-28 11:42:13 檢舉

有了,可以使用了!
這原理是什麼?
那如果又再加一個hidden 欄位呢

kksugsay iT邦新手 1 級 ‧ 2018-06-29 09:31:34 檢舉

昨天無法回覆了,已說明在上面~

我要發表回答

立即登入回答