如何将3个下拉列表中的值插入mysql中的1列
我正在使用php。
我有一个包含3个日期下拉列表的表单, 1天 2个月 3.年
如何在mysql中将它们作为1个日期值插入1列?
答案 0 :(得分:1)
$year = $_POST['year_column']; //YYYY
// Updated
// Cause you have months as String like January
$month = date('m', strtotime($_POST['month_column'])); //Return MM
$day = $_POST['day_column']; //DD
$newDate = $year . '-' . $month . '-' . $day;
现在将$newDate
变量插入到您的DataBase中,为mysql中的datetime
再添加一个date_field
数据类型。
<强>更新强>
$months = array(1=>'January', 'February', ...); // Your Months in array
echo "<select name='month_column'>";
foreach( $months as $key=>$month){
echo "<otpion value='$key'>$month</option>";
}
echo "</select>";
如果您有January
个月的名字,请查看此示例http://codepad.org/p3pqbSlB,这会将您的月份转换为datetime
兼容。
你也应该看看PHP的date()功能。
享受。
答案 1 :(得分:1)
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$date = $month." ".$day.",".$year;
$query = "INSERT INTO table_name(my_column) VALUES(STR_TO_DATE('$date','%d,%m,%Y'))";
使用(。)点连接运算符将所选值下拉到单个字符串$date
中,并将其传递给 STR_TO_DATE()
函数,该函数将字符串转换为日期。< / p>
因此,假设您将字符串 2013年5月1日传递给STR_TO_DATE()
函数,插入的值为日期时间类型2013-05-01
。
例如
mysql> SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y');
-> '2013-05-01'
或
mysql> SELECT STR_TO_DATE('May 1, 2013','%M %d,%Y');
-> '2013-05-01'
现在,要以完整月份名称格式显示此日期时间值,请使用 DATE_FORMAT()
功能。
mysql> SELECT DATE_FORMAT('2013-05-01', %M %d %Y');
-> 'May 1 2013'
答案 2 :(得分:0)
确保该列是日期类型
然后将3个下拉列表中的值连接到日期字符串
// proper input for date into mysql = "Y-m-d" ("2013-01-23")
$dateString = $year . "-" . $month . "-" . $day;