2012-12-08 4 views
0

В моей форме у меня есть поле даты, которое не является обязательным. Моя проблема заключается в том, что пользователи не заполняют это поле, и они отправляют форму на mysql db вместо того, чтобы оставить поле пустым, вместо этого он сохранит 1969-12-31 и любую последующую форму, которая была отправлена ​​в тот же день будут иметь восходящие даты с 1969-12-31, если это поле снова осталось пустым. Что я могу изменить, чтобы mysql просто оставил это поле пустым. Спасибо за прочтение.PHP Mysql представление даты поля даты

Вот коды:

<input id="nfud" name="nfud" type="date" class="input-small"/> 

Mysql отправить запрос

$nfud = date('Y-m-d', strtotime($_POST["nfud".$n.""])); 
$query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','".$nfud."','$dealID')"; 
     mysql_query($query) or die(mysql_error()); 
+0

- это поле даты, установленное для неточности? – geekman

+0

Поле даты имеет значение –

ответ

0

в MySQL, дать поле даты по умолчанию значение 0.

+0

Благодарим за ответ. Я установил поле даты mysql в значение по умолчанию 0000-00-00, но все же, когда форма отправлена ​​1970-01-01, сохраняется вместо –

2

Просто оставьте поле пустым, если вы не опубликовали дату с вашей формы:

if(isset($_POST["nfud$n"]) { 
    $nfud = date('Y-m-d', strtotime($_POST["nfud$n"])); 
} else { 
    $nfud = ""; 
} 
$query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."', '".$nfud."','$dealID')"; 
     mysql_query($query) or die(mysql_error()); 

EDIT: Попробуйте это позволить MySQL поместить значение по умолчанию для столбца

if(isset($_POST["nfud$n"]) { 
    $nfud = date('Y-m-d', strtotime($_POST["nfud$n"])); 
    $query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
      values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','".$nfud."','$dealID')"; 

} else { 
    $query="insert into number_info (phone_number, data_plan, phone_used, dealID) 
      values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','$dealID')"; 
} 

mysql_query($query) or die(mysql_error()); 
+0

Благодарим вас за ответ. Я пробовал это, единственное, что изменилось, теперь дата не поднимается, а застревает в 1970-01-01. Я даже пробовал делать '$ nfud =" 0000-00-00 ";' но он по-прежнему сохраняется 1970-01-01. Я также устанавливаю значение по умолчанию в поле даты mysql как 0000-00-00 –

+0

Я также пробовал '$ nfud = 'NULL';' но все же 1970-01-01 aved –

+0

Просто попробовал '$ nfud = NULL;' все равно не идти , –

0

Это можно контролировать на стороне тузда с неисполнением и другими параметрами.

Можете ли вы запустить следующее в mysql и поделиться результатами?

SHOW CREATE TABLE number_info; 
+0

Я запустил его, но я не уверен, какие результаты я должен показывать. MySql только говорит '' CREATE TABLE 'number_info' ( ' numberID' int (11) ... '' –

+0

Да, это то, что он должен показать. Можете ли вы показать полный вывод? –

Смежные вопросы