数组更新语句空白SQL表中的记录。 - 更新

时间:2014-10-31 12:33:16

标签: php mysql arrays sql-update

我有一个食谱数据库,您可以在每个食谱上编辑食谱,并在一个单独的表格中添加成分及其数量。

我有一个插入语句,适用于向我的数据库添加新项目。

但我希望在更新食谱时适应这一点。我有一个更新声明,但如果我添加新的成分,它还需要插入 - 同样我需要删除我删除的任何行。

我已经调整了我的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));– 
}

1 个答案:

答案 0 :(得分:0)

检查语法使用此代码mysql update manual

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

并且不使用此代码

UPDATE DishIng Set (DishID, IngID, Volume) VALUES