2015-01-14 50 views
1

反正是有忽略集CalDate和交貨期,如果他們是空的,仍然成功地以更新的輸入並節省CalDate交貨期老值的值的MySQL/PHP忽略設置,如果值爲null

if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){ 
$upd = "UPDATE booking SET status='$status', CalDate='$CalDate', DueDate='$DueDate' WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')"; 
} 

此代碼設置值爲0000-00-00如果null是可以理解的,但我確實喜歡在這種情況下忽略它。

+0

裏面你的數據庫的字段爲空? –

+0

是的,他們可以是 – Snoken

+0

$ upd是一個字符串。如果$ CalDate爲null,則不要將該代碼添加到查詢中。因此動態構建您的查詢;) –

回答

1

試試這個。

if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){ 

     $upd = "UPDATE booking SET status='$status'"; 
     if($CalDate !='') 
      $upd.= ",CalDate='$CalDate'"; 
     if($DueDate !='') 
      $upd .= ",DueDate='$DueDate'"; 
     $upd .=" WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')"; 
     } 
+0

這工作,看起來乾淨,好!感謝:D – Snoken

+0

不錯的工作..做一個循環.. :) – Sarath

0
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){ 
    $set = "status = '$status'"; 
    if (! empty($CalDate)) $set .= ", CalDate = '$CalDate'"; 
    if (! empty($DueDate)) $set .= ", DueDate = '$DueDate'"; 
    $upd = "UPDATE booking 
     SET $set 
     WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')"; 
} 
0
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){ 
    $query = "UPDATE booking SET status='$status'"; 
    if($CalDate != NULL){ 
     $query .= ", CalDate='$CalDate'"; 
     //Run this query to get the CalDate 
     //"SELECT CalDate FROM booking WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')" 
     //Get the result into $CalDate 
    } 
    if($DueDate != NULL){ 
     $query .= ", DueDate='$DueDate'"; 
     //Run this query to get the DueDate 
     //"SELECT DueDate FROM booking WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')" 
     //Get the result into $DueDate 
    } 
    $query .= " WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')"; 

    $upd = $query; 
}