使用php从html获取日期以将其插入表中

时间:2014-05-23 03:01:39

标签: php html forms date mysqli

所以我创建了一个类似这种形式的表单

年:

    <select name="year">
        <option name="year"></option>
        <option name="year">1991</option>
        </select>

月:

    <select name="month">
        <option name="month"></option>
        <option name="month">1991</option>
        </select>

天:

    <select name="day">
        <option name="day"></option>
        <option name="day">1991</option>
        </select>

我试图以这种格式YYYY-mm-dd

将其插入表格中

我使用了这种方法

if(isset($_POST['submit'])){
$year = mysqli_real_escape_string($db, $_POST['year']); 
$month = mysqli_real_escape_string($db, $_POST['month']); 
$day = mysqli_real_escape_string($db, $_POST['day']); 
}
$sql = "INSERT INTO spoter.user (`id`, `first_name`, `last_name`,
 `password`, `email`, `location`, `DOB`) VALUES ($year, $month, $day)";

我尝试了几个选项,但我不知道我是否应该更改HTML中的表单并使其与我的不同?要么?有办法吗?

如何获取用户输入日期并将其插入表格?

6 个答案:

答案 0 :(得分:0)

首先,您的SQL查询不正确,您提供了7列,但只提供了3个字段,我还猜测DOB是一个单独的日期字段,因此它需要一个日期字符串:

$dob = "{$year}-{$month}-{$day}"; // assuming your using YYYY-MM-DD format

答案 1 :(得分:0)

这里有很多问题:

  1. 您尝试插入包含3个值的7列
  2. <option>应该有value属性,而不是name
  3. $sqlisset()之外,如果是这样的话?
  4. 你来自其他星球吗?没有1991年的第一个月和人类历法中的第1991天。
  5. 对于第2点,这是一个例子:

    <select name="year">
        <option value=""></option>
        <option value="1991">1991</option>
    </select>
    

    您可以按$_POST['year']获取数据(假设您使用POST提交表单

    对于第1点,DOB字段的值应为:

    $dob = $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'];
    

    但是将$dob插入查询中,我建议检查3个$_POST字段的空值。

答案 2 :(得分:0)

您没有包含值属性

<select name="year">
    <option value="1991"></option>
    <option value="1991">1991</option>
</select>

<select name="month">
    <option  value=""></option>
    <option  value="12">12</option>
</select>

<select name="day">
    <option value=""></option>
    <option value="3">3</option>
</select>

并确保它包装在表单上

答案 3 :(得分:0)

或类似的东西来构建变量,我通常喜欢这种方式格式化语法高亮显示目的,以查看我正在使用的变量。

$dob = $year."-".$month."-".$day;

答案 4 :(得分:-2)

仅插入DOB(我假设你知道所有明显的小错误):

if(isset($_POST['submit'])){
$year = mysqli_real_escape_string($db, $_POST['year']); 
$month = mysqli_real_escape_string($db, $_POST['month']); 
$day = mysqli_real_escape_string($db, $_POST['day']);

$dob =  $year."-".$month."-".$day;
$sql = "INSERT INTO spoter.user (`id`, `first_name`, `last_name`,
 `password`, `email`, `location`, `DOB`) VALUES (``,``,``,``,``,``,".$dob.")";}

答案 5 :(得分:-2)

而不是做所有这些u sud尝试html表单的内置函数而不是尝试所有这些查询只是放置这个

     mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error());