1

如何将3个下拉列表中的值插入mysql的1列

我正在使用 php。

我有一个表格,其中包含 3 个日期下拉列表,1. Day 2. Month 3. Year

如何将它们作为 1 个日期值插入 mysql 中的 1 列?

4

3 回答 3

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()将字符串转换为日期的函数。

因此,假设您将字符串May 1,2013传递给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'
于 2013-01-24T04:06:51.163 回答
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变量插入到您的数据库中,这datetime是您date_field在 mysql 中的另一种数据类型。

更新:

$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()函数。

请享用。

于 2013-01-24T04:03:08.353 回答
0

确保该列是日期类型

然后将 3 个下拉列表中的值连接到日期字符串中

 // proper input for date into mysql = "Y-m-d" ("2013-01-23")
$dateString = $year . "-" . $month . "-" . $day;
于 2013-01-24T04:02:55.440 回答