Váš problém je s názvy polí ve vašem HTML formuláři:
<input type="number" name="quantity" value="<?php echo $row['quantity']; ?>">
<input type="hidden" name="item_id" value="<? echo $row['item_id']; ?>">
Myslím, že jste je chtěl nazvat quantity[]
a item_id[]
místo toho, takže budou a až jako pole ve vašem $_POST
proměnná později, nyní se navzájem přepisují, takže $_POST['item_id']
obsahovat pouze poslední id v databázi.