私はこれを理解するのに苦労しています。遅かれ早かれ大きくなるこのデータベースがあり、次のようになります。
est_id |mat_id | est_qty | qty_rec
2 | 29 | 50 | 0
3 | 29 | 70 | 0
8 | 29 | 100 | 0
ここで、達成したいのは、est_qty と qty_rec が等しくなるまで単一の行を更新し、その後別の行に移動することです。コードを開始しましたが、機能しません。
foreach($mat_id as $mat_id_key => $mat){
while($rec_qty > 0){
$remBal = $est_qty[$mat_id_key] - $qty_rec[$mat_id_key];
if(($remBal - $rec_qty) >= 0){
mysql_query('UPDATE `estimates` SET `qty_rec` = `qty_rec` + '.$rec_qty.' WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.$mat[$mat_id_key].'"');
}
}
}
$rec_qty
このコードでは、各行がループに入り、est_qty と0 以上の差である条件を満たすまで、その行を更新します。
たとえば、ユーザーが として 30 を入力する$rec_qty
と、データベースは次のようになります。
est_id |mat_id | est_qty | qty_rec
2 | 29 | 50 | 30
3 | 29 | 70 | 0
8 | 29 | 100 | 0
ユーザーが 2 回目に、たとえば 40 を として入力する$rec_qty
と、データベースは次のようになります。
est_id |mat_id | est_qty | qty_rec
2 | 29 | 50 | 50
3 | 29 | 70 | 20
8 | 29 | 100 | 0