問題は、HTMLフォームのフィールドの名前にあります:
<input type="number" name="quantity" value="<?php echo $row['quantity']; ?>">
<input type="hidden" name="item_id" value="<? echo $row['item_id']; ?>">
あなたはそれらをquantity[]と呼ぶつもりだったと思います およびitem_id[] 代わりに、$_POSTの配列として表示されます。 後で変数になり、相互に上書きして、$_POST['item_id']を作成します。 データベースの最後のIDのみが含まれます。