Итак, я пытаюсь обновить обновление моих 2 таблиц: счет-фактура и заказ_Таблица. Я хочу, чтобы он обновлял новое количество и новую цену в каждой таблице, но только для определенного OrderID. Я пришел к следующему:PHP: MySQL: обновление обновляет более одной строки
$UpdateQuant = "UPDATE Order_Table SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);
$UpdatePrice = "UPDATE Order_Table SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);
//Update Invoice Table
$UpdateQuant = "UPDATE Invoice SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);
$UpdatePrice = "UPDATE Invoice SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);
Однако, когда я выполняю это, он обновляет каждую строку. Я не понимаю, почему это произойдет даже с тех пор, как я использую WHERE OrderID = '$OrderID'
Выбросьте SQL перед тем, как выполнить его, возможно, что-то не в переменных, как вы ожидаете. В противном случае, должно быть, каждая обновленная запись имеет тот же самый идентификатор orderID. – Fluffeh
Guessing OrderID - целое число в вашей базе данных, вы должны оставить одинарные кавычки вокруг '$ OrderID'. Как также объяснено на: http://stackoverflow.com/questions/10983499/mysql-automaticaly-cast-strings-to-integer Просьба также сообщить, что это искренний риск использовать функции mysql_ *, и все расскажут вам либо использовать функции mysqli_ * или pdo! Не только из-за проблем с безопасностью, но и из-за передовой совместимости. – Luceos
Можете ли вы запустить следующий запрос и опубликовать вывод? 'SELECT * FROM Invoice WHERE OrderID = '$ OrderID''? – Machavity