2014-10-31 73 views
0

我有一個食譜數據庫,每個食譜都可以編輯食譜,並在單獨的表格中添加移除成分及其數量。SQL表中的數組更新語句空白記錄。 - 已更新

我有一個插入語句,適用於將新項目添加到我的數據庫。

但我想適應當我更新食譜。我有一個更新聲明,但如果我添加新成分,它也需要插入 - 同樣我需要刪除我刪除的任何行。

我已經調整了我的SQL語句,並像原始insert語句那樣對數組進行了implode操作,但是當我提交時,它會使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 manual

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

,而不是使用此代碼

UPDATE DishIng Set (DishID, IngID, Volume) VALUES