2015-01-28 2 views
0

billing.phpКак вставить в базу данных с типом ввода = месяц?

Expiry Date: <input type="month" id="ccexpirydate" name="ccexpirydate" value="<?php echo $row['expirydate'] ?>"/> 

Во-первых, как я извлечь из базы данных показывает только месяц и год?

dobilling.php

$expiryDate = $_POST['ccexpirydate']; 

$query = "INSERT INTO bill (ccexpirydate) VALUES ('" . $expiryDate . "')"; 

Во-вторых, после изменения даты истечения срока и представления формы, как обновить базу данных с помощью ввода типа = месяц? Показывается только месяц и год. Как и в настоящее время, моя база данных будет показывать 0000-00-00.

+0

«_My баз данных show 0000-00-00_ "Это означает, что поле столбца' ccexpirydate' имеет тип DATE. Он ожидает, что входная переменная имеет тип DATE, а не только месяц. Также вы не указали, какой SQL db вы используете. – KarelG

+0

попробуйте изменить тип поля столбца ccexpirydate на varchar (8), если вы хотите сохранить формат mm-yyyy в DB –

ответ

1

Вводы даты передаются в стандартном формате. Независимо от того, что показано пользователю (который будет их местным форматом), ваш сервер получит YYYY-MM.

Вы можете сохранить его как столбец CHAR(7) или добавить "-01" в конец его и сохранить текущую колонку DATE.

+0

Или добавить последний день месяца, а не 01, чтобы создать допустимый формат и истинную дату истечения срока действия и разрешить простой запрос '' ', чтобы обнаружить его позже. –

0

Вы можете сцепить любую произвольную дату переменного при вставке в таблицу, как

$expiryDate = $_POST['ccexpirydate']; 
$expiryDate = $expiryDate."28"; //any date 

И извлечения и отображения в форме, вы можете использовать его как: бы

<input type="month" value="<?php echo date('Y-m', strtotime($table_name['date_field'])); ?>"> //Y-m will give you date like, eg. 2017-11. Input type month will automatically read it as.. November 2017 
Смежные вопросы