如何在php中验证下拉菜单?

时间:2009-04-01 14:42:27

标签: php mysql

我们必须插入出生日期(这是一个包含DD / MM / YYYY的下拉框) 在MySql中通过验证它。怎么做到呢?


它是出生日期的表单验证,由用户从下拉菜单中的选项输入。我的问题是如何使用PHP在MySql中插入输入DOB

4 个答案:

答案 0 :(得分:1)

你可以首先做(每个领域):

if((int) $field == 0)
{
    return false;
}

之后你可以这样做:

$birthday = date('Y-m-d', strtotime($day . '-' . $month . '-' . $year));
mysql_query("INSERT INTO your_table(birthday) VALUES('" . $birthday . "')";

答案 1 :(得分:0)

我假设通过下拉你的意思是这样的一系列选择,对吗?

<select name="month">
<option value ="01">January</option>
<option value = "02">February<option>
...
</select>
<select name="day">
<option value = "01">01</option>
...
</select>
<select name="year">
<option value = "1930">1930</option>
[etc.]

如果是这种情况,那么您的数据就是自我验证的。在服务器端,您可以这样做:

<?php
$mysql_date = "$_POST[year]" . "-" . "$_POST[month]" . "-" . "$_POST[day]";
mysql_query("INSERT INTO your_table (`date`) VALUES ('$mysql_date')");
?>

希望我没有误解这个问题。

答案 2 :(得分:0)

你的问题有点令人困惑。通过“验证”来插入数据是没有意义的。

如果您想知道如何插入数据,那么这是一个基本的MySQL问题,最好通过咨询online documentation来解答。

如果您想知道如何验证数据,那么您将不得不指定所需的验证类型 - 正如砂光机已经回答的那样。这有点像问“如何制作GUI?”你可以通过无限的方式来做到这一点。问题太模糊了。

如果您只是想检查提交的值是否是有效日期,那么快速而肮脏(懒惰)的方法就是将其插入表中(假设您有一列{{3然后进行后续查询以检索存储的值。如果存储的值是该数据类型的“零”值(即'0000-00-00'或'0000-00-00 00:00:00'),则提交的值不是有效日期。

所以你的代码看起来像:

<?
$month = mysql_real_escape_string($_POST['month']);
$day = mysql_real_escape_string($_POST['day']);
$year = mysql_real_escape_string($_POST['year']);
$query = "INSERT INTO my_table (`birthday`) VALUES ('$year-$month-$day')";
mysql_query($query);
$query = "SELECT `birthday` FROM my_table WHERE `id`=LAST_INSERT_ID()";
$qid = mysql_query($query);
$res = mysql_fetch_object($query);
if ($res->birthday == '0000-00-00') {
    // submitted date was invalid
}
?>

当然,上述代码有许多缺点。理想情况下,您可能希望在插入之前验证数据,如果要更新记录而不是插入新记录,则需要在覆盖原始值之前获取原始值。无效的。

顺便说一句:我想你的意思是说“下拉列表”或“选择列表”。下拉菜单是另一回事。

答案 3 :(得分:-1)

什么样的验证? 当日期无效时,mysql将打印错误