unless you want to update every row in the table, a WHERE clause in the UPDATE statement is necessary
you could update multiple rows at once with judicious choice of column condition
e.g. UPDATE items SET price = price * 0.9 WHERE vendor = 'discontinued'
but in order to update a single row only, you need to be able to identify a single row, and the best way to do that is by specifying a value for the primary key of the table
e.g. UPDATE items SET price = 9.37 WHERE id = 456
and there would be only one row for each id, since id would be the primary key of the table
as for your duplication after the UPDATE where a row is appended to the table, look to your php for the source of that error