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.