Проблемът ви е с имената на полетата във вашия 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']
съдържа само последния идентификатор в базата данни.