Snoken
Snoken

Reputation: 103

mysql/php Ignore set if value is null

Is there anyway to ignore the set CalDate and DueDate if they are null and still succeed to update the values that are entered and save the old value on CalDate and DueDate?

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')";
}

This code set a value of 0000-00-00 if null which is understandable but I do like it to ignore that in that case.

Upvotes: 1

Views: 109

Answers (3)

Keshan Fernando
Keshan Fernando

Reputation: 367

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;
}

Upvotes: 0

RST
RST

Reputation: 3925

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')";
}

Upvotes: 0

Sarath Kumar
Sarath Kumar

Reputation: 2353

try this.

  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')";
        }

Upvotes: 1

Related Questions