2017-08-16 100 views
0

即爲同一類型產品支付多於一個客戶的金額爲20,000美元。 客戶一$ 12,000, 客戶兩3,000美元, 客戶二$ 5,000。 總共是$ 20,000。選擇並更新表格,然後在值爲零時停止選擇

當買家點擊購買的產品,它們可我想,

  1. 選擇和更新表,直到買方金額支付獲得零,然後停止。
  2. 計算那些他應該支付的行數並更新他的行。

我已經試過

$qry=mysqli_query($link,"Select sum(selleramount) from sellertable Where buyer product>0"); 
$asum=$row[0]; 
($row=mysqli_fetch_array($ry)); 
foreach ($qry as $row) { 
    $balance=$buyeramount-$asum; 
    mysqli_query($link,"insert into buyertable (amount,seller_id,) values ('$amount_to_payseller','$sellertopayid')"); 
    mysqli_query($link,"update sellertable set seller amount='$balance'"); 
} 

我都試過,但它不工作了。我有這個想法,但如何去做我不知道的事情。

回答

0

我沒有你的數據來正確測試它,但事務方法可能在這裏工作。例!

$qry=mysqli_query($link,"Select sum(selleramount) from sellertable Where buyer product>0"); 
$asum=$row[0]; 
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY); 
($row=mysqli_fetch_array($ry)); 
foreach ($qry as $row) { 
    $balance=$buyeramount-$asum; 
    mysqli_query($link,"insert into buyertable (amount,seller_id,) values ('$amount_to_payseller','$sellertopayid')"); 
    mysqli_query($link,"update sellertable set seller amount='$balance'"); 
} 
$mysqli->commit(); 
$mysqli->close(); 
+0

感謝您的回答。請問上面的解決方案預計會做什麼。 – user8473381

+0

實際上,事務和提交基本上會掛起事務,並且在完成時,通過移動記錄指針的結尾來包含新更新來進行提交。所以在這種情況下,如果總失敗,你可以添加一個回滾。 – Cyberience