Возникла след. проблема: вот код: PHP: $serpasp=$_POST['serpasp']; $nompasp=$_POST['nompasp']; $kempasp=$_POST['kempasp']; mysql_query('UPDATE `dogovor` SET `serpasp`='.$_POST['serpasp'].',`nompasp`='.$_POST['nompasp'].',`kempasp`='.$_POST['kempasp'].' WHERE `id_dog`='.$pid.' ') or die (mysql_error()); PHP: $_POST['serpasp'] $_POST['nompasp'] $_POST['kempasp'] - эти переменные берутся из формы, точнее из текстбоксов на ней, так вот, если не заполнено хотя бы одно, данный запрос выдает следующую ошибку: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax" Подчеркиваю, если все три поля на форме заполнены то все нормально обновляется в БД... подскажите, что за ХРЕНЬ?
Ну у тебя же получается Код (Text): ... SET `serpasp`=,`nompasp`=,`kempasp`= WHERE ... Если в поле ничего нет, то получается ошибочный синтаксис. А надо бы наоборот кавычки поставить Код (Text): ... SET serpasp=``,nompasp=``,kempasp=`` WHERE ... внутрь `` выводи значение. Удивительно, что у тебя вообще что-то работает с таким синтаксисом.
PHP: mysql_query('UPDATE `dogovor` SET serpasp=`'.$_POST['serpasp'].'`,nompasp='.$_POST['nompasp'].',kempasp='.$_POST['kempasp'].' WHERE `id_dog`='.$pid.' ') or die (mysql_error()); так? тоже не работает!
так то должно работать Код (Text): $serpasp='',$nompasp='',$kempasp='';//дефолтные значения if(isset($_POST['serpasp'])){$serpasp=$_POST['serpasp'];} if(isset($_POST['nompasp'])){$nompasp=$_POST['nompasp'];} if(isset($_POST['kempasp'])){$kempasp=$_POST['kempasp'];} mysql_query("UPDATE dogovor SET serpasp=`$serpasp`,nompasp=`$nompasp`,kempasp=`$kempasp` WHERE id_dog=`$pid`") or die(mysql_error());
PHP: <?php $serpasp='',$nompasp='',$kempasp='';//дефолтные значения if(!empty($_POST['serpasp'])){$serpasp=mysql_real_escape_string($_POST['serpasp']);} if(!empty($_POST['nompasp'])){$nompasp=mysql_real_escape_string($_POST['nompasp']);} if(!empty($_POST['kempasp'])){$kempasp=mysql_real_escape_string($_POST['kempasp']);} mysql_query("UPDATE dogovor SET serpasp='$serpasp',nompasp='$nompasp',kempasp='$kempasp' WHERE id_dog='$pid'") or die(mysql_error());
Если пустое значение, то поставь ему в базе, что оно может быть NULL. Да и у некоторых хостеровиногда мускул настроен так, что при пустом запросе тебя обламывают. По типу PHP: mysql_query("UPDATE dogovor SET serpasp='$serpasp',nompasp='$nompasp',kempasp='$kempasp' WHERE id_dog='$pid'") or die(mysql_error()); если например $serpasp пустое, то надо писать PHP: mysql_query("UPDATE dogovor SET serpasp=NULL,nompasp='$nompasp',kempasp='$kempasp' WHERE id_dog='$pid'") or die(mysql_error());