У меня есть запрос UPDATE и использование Ajax, я хотел знать, пусто ли какое-либо значение, я могу только обновить значения, которые не пустые в базе данных. Я не знаю, возможно ли иметь оператор if или что-то, чтобы проверить, чтобы пропустить пустые значения. Я знаю, что могу просто добавить еще один элемент формы, но просто хотел узнать, есть ли другое решение.
Только если данные POST из формы переднего конца. Если данные не POST не обновляют этот Title
= '. $ Title
.',
$id = $_POST['id']; $title = ""; $description = $_POST['Description']; $date = $_POST['Date']; $query = 'UPDATE user SET `id` = '.$id.', `Title` = '.$title .', `Description` = '.$description.', `Date` = '.$date =.' WHERE `id` = '.$id; $result = mysql_query($query) or die("<b>A fatal MySQL error occured</b>.<br />Query: ".$query."<br />Error: (".mysql_errno().") ".mysql_error());
Обновление: Это то, что сработало для меня. Спасибо, Карим Дараф
$ query = "UPDATE user SET Title
= Coalesce ($ title, Title
) и т. д. …
Попробуйте это с Coalesce.
$query = " UPDATE user SET `Title` = CASE WHEN `Title`='' or `Title` IS NULL THEN '$title' END, `Description` = CASE WHEN `Description`='' Or `Description` IS NULL THEN '$description' END, `Date` = CASE WHEN `Date`='' Or Date` IS NULL THEN '$date' END WHERE `id` = '".$id."' ";
или :
$query = " UPDATE user SET `id` = Coalesce('$id''".$id."' , NULLIF(`id`,'')), `Title` = Coalesce('$title''".$title."',NULLIF(`Title`,'') ) , `Description` = Coalesce('$description''".$description."' , NULLIF(`Description`,'') ) , `Date` = Coalesce('$date''".$date."',NULLIF(`Date`,'')) WHERE `id` = '$id''".$id."' ";
Не уверен, что понял: у вас есть данные и вы хотите обновить, но только если некоторые из них в БД пусты? В случае perfom только где:
$query = 'UPDATE user SET `id` = '.$id.', `Title` = '.$title .', `Description` = '.$description.', `Date` = '.$date =.' WHERE `id` = '.$id.' AND Title = '';
например
С уважением, Питер