Оператор обновления массива очищает записи в таблице SQL. — ОБНОВЛЕНО

У меня есть база рецептов, на каждом можно редактировать рецепт и добавлять удаляемые ингредиенты и их количество в отдельную таблицу.

У меня есть оператор вставки, который хорошо подходит для добавления новых элементов в мою базу данных.

Но я хочу приспособить это, когда я обновляю рецепты. У меня есть оператор обновления, но если я добавляю новые ингредиенты, он должен также вставить — аналогично мне нужно удалить все строки, которые я удаляю.

Я скорректировал свой оператор SQL и внедрил массив, как я сделал для оригинального оператора вставки, однако при отправке он закрывает все записи в таблице SQL, теряя все.

Я приложил весь код на случай, если я подхожу к этому неправильно, так как я не уверен, что даже исправление этого даст мне нужные мне результаты.

$DishID=$_GET['DishID'];

$sql="UPDATE Dishes
SET DishName='$DishName',
DishCatID='$DishCatID',
Serving='$Serving',
SRP='$SRP',
Method='$Method',
SourceID='$SourceID'
WHERE DishID='$DishID'";
$result = mysqli_query($con,$sql) or die(mysqli_error($con));

$array = array('$DishID'=>$DishID,'$IngID'=>($_POST['IngID[]']),'$Volume'=>($_POST['Volume[]']) );

$values = array();
foreach ($_POST['IngID'] as $i => $ingID) {
if (!empty($ingID)) {
$ingID = mysqli_real_escape_string($con, $ingID);
$volume = mysqli_real_escape_string($con, $_POST['Volume'][$i]);
$values[] = "('$DishID', '$ingID', '$volume')";
}
}
if (!empty($values)) {
$sql2 = "UPDATE DishIng
Set DishID=('$DishID'),
IngID= ('$IngID'),
Volume=('$Volume')";
mysqli_query($con, $sql2) or die(mysqli_error($con));–
}

0

Решение

Проверьте ваш синтаксис используйте этот код mysql руководство по обновлению

UPDATE DishIng Set DishID = 'xx', IngID = 'yy', Volume='zz'

и не используйте этот код

UPDATE DishIng Set (DishID, IngID, Volume) VALUES
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]