2013-10-01 4 views
2

мой типа дата date и данные 2010-08-01 конвертировать из ГМДА в ДМГ, когда эхо выхода - 01-08-2010столбец даты запрос обновления

эха-кода

<td width="50%" class="pk_2"><input name="personal_ic_from" type="text" class="tcal" id="personal_ic_from" value="<?php 
echo date_create($personal_ic_from)->format('d-m-Y'); 
?>" readonly="readonly"/> 
      </td> 

что я должен добавить на моем обновить запрос для преобразования из dmY в Ymd. Я обнаружил, что моя база данных не могу сохранить новые данные о дате, так как формат базы данных dateY-m-d

код обновления

<?php 
$personal_ic_from = $_POST['personal_ic_from']; 
mysql_query("UPDATE personal_id_ic SET personal_ic_from = '".mysql_real_escape_string($_POST["personal_ic_from"])."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 
?> 
+0

Возможно, вы оставите все даты в том же формате на интерфейсе, а затем попросите их преобразовать их перед хранением или после прочтения для представления клиенту. – TimSPQR

+0

@TimSPQR Я должен, чтобы мой преподаватель использовал формат даты в базе данных, затем эхо с форматом d-m-Y, а затем обновил формат Y-m-d. до сих пор эхо хорошее. но у меня проблема при обновлении. его будет намного проще, если просто использовать varchar в столбце даты справа. – afifi

ответ

1

Пожалуйста, обратитесь к STR_TO_DATE(). Ваш запрос должен выглядеть так,

mysql_query("UPDATE personal_id_ic SET personal_ic_from = STR_TO_DATE('".mysql_real_escape_string($_POST["personal_ic_from"])."','%Y-%m-%d') WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 
+0

У меня эта Неустранимая ошибка: вызовите неопределенную функцию STR_TO_DATE() в C: \ wamp \ www \ eprofile \ process.php в строке 51. Как я могу определить эту функцию? – afifi

+0

Извините, отредактировал мой код – Deepak

+0

Хорошо, я понял это сейчас. u забыл изменить «% Y-% m-% d» на «% d-% m-% Y». Когда я меняю его на «% d-% m-% Y», он работает. Я использую этот mysql_query ("UPDATE personal_id_ic SET personal_ic_from = STR_TO_DATE (" ". Mysql_real_escape_string ($ _ POST [" personal_ic_from "])." ','% Y-% m-% d ') WHERE LAS_login_id =' ".mysql_real_escape_string ($ _ POST [" LAS_login_id "])." ' "); Thx для вашей помощи Mr. Deepak – afifi

0

просто использовать функцию STR_TO_DATE в запросе это функция MySQL. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

"ОБНОВЛЕНИЕ personal_id_ic SET personal_ic_from = STR_TO_DATE ('". Mysql_real_escape_string ($ _ POST [ "personal_ic_from"]). " ' '% D-% m-% Y') где LAS_login_id ='" .mysql_real_escape_string ($ _POST [ "LAS_login_id"]) "'".

+0

У меня эта Неустранимая ошибка: вызовите неопределенную функцию STR_TO_DATE() в C: \ wamp \ www \ eprofile \ process.php в строке 51. Как я могу определить эту функцию? – afifi

0
<?php 
$personal_ic_from = date("Y-m-d", strtotime($_POST['personal_ic_from'])); 
mysql_query("UPDATE personal_id_ic SET personal_ic_from = '".mysql_real_escape_string($personal_ic_from)."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 
?> 

Попробуйте это. Это решит вашу проблему.

+0

Я пробую ваш код, но когда я выбираю другую дату и пытаюсь запустить запрос на обновление, данные о дате, которые хранятся в базе данных, являются «0000-00-00» – afifi

0

Я недавно узнал о «взрываются» на этом форуме, и реализовали это так:

$frontenddob = $POST['dob'];  
list ($m, $d, $y) = explode('/', $frontenddob);  
$dob = sprintf("%04d-%02d-%02d", $y, $m, $d); 

Вы можете использовать его для преобразования между форматами даты, и не впадать в проблемы с StrToTime сроки.

0
Try this code 
<?php 
$personal_ic_from = $_POST['personal_ic_from']; 
$personalDate=date_create($personal_ic_from); 
$pdate=date_format($personalDate,"d-m-Y"); 

mysql_query("UPDATE personal_id_ic SET personal_ic_from ='".mysql_real_escape_string($pdate)."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 

?> 
+0

Я пробую ваш код, но когда я выбираю другую дату и пытаюсь выполните запрос обновления, данные даты, хранящейся в базе данных, - «0000-00-00». Можете ли вы сказать мне, почему это происходит и какое-либо предложение? – afifi

+0

Проверьте дату публикации $ _POST ['personal_ic_from']; – Punitha

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