我有一个食谱数据库,在每个食谱上,你都可以编辑食谱,并在一个单独的表中添加去除成分及其数量。
我有一个insert语句,它可以很好地将新项目添加到我的数据库中。
但我想在更新食谱时对此进行调整。我有一个更新语句,但如果我添加新的成分,它也需要插入——同样,我需要删除我删除的任何行。
我已经调整了我的SQL语句,并像对原始insert语句那样内爆了数组,但当我提交时,它会清空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));–
}
使用此代码检查您的语法mysql更新手册
UPDATE DishIng Set DishID = 'xx', IngID = 'yy', Volume='zz'
并且不使用此代码
UPDATE DishIng Set (DishID, IngID, Volume) VALUES