Uw probleem is met de namen van de velden in uw HTML-formulier:
<input type="number" name="quantity" value="<?php echo $row['quantity']; ?>">
<input type="hidden" name="item_id" value="<? echo $row['item_id']; ?>">
Ik denk dat je ze quantity[] wilde noemen en item_id[] in plaats daarvan zullen ze en hoger worden als arrays in uw $_POST variabele later, nu overschrijven ze elkaar, waardoor $_POST['item_id'] alleen de laatste id in de database bevatten.