-2

我有一个带有两个文本框的表单,我在其中显示月份日历,就像在任何其他在线表单中一样选择日期。用户选择日期。我希望用户选择一个等于或晚于系统日期的日期,例如明天。我正在比较日期,然后尝试将其插入到数据库中,其中包含开头日期和结束日期两列。我什至不希望文本框留空。我有以下代码,但没有成功。

<?php
mysql_select_db("trials");
if(isset($_POST['next']))
{
    $odate=date("Y-m-d");//system date
    echo $odate;
    if(($_POST['date1']>$odate)||($_POST['date1']==$odate)&&($_POST['date1']!=""))
    {
    $s=mysql_query("insert into registration_date (opening_date, closing_date) values('$_POST[date1]','$_POST[date2]')");
    echo $s;
    if(mysql_query($s))
    {
        echo "successful";
    }
    else echo "error".mysql_error();
    }
    else
        echo "Enter A Valid Date";

}
?>
4

3 回答 3

1

您还在集合上使用了 mysql_query 两次$s,然后您在mysql_query($s)稍后执行,这实际上是在执行mysql_query(mysql_query("sql"))

$s=mysql_query("insert into registration_date (opening_date, closing_date) values('$_POST[date1]','$_POST[date2]')");
    echo $s;
    if(mysql_query($s))
于 2013-06-20T08:55:42.843 回答
0

代替

if(($_POST['date1']>$odate)||($_POST['date1]==$odate)&&($_POST['date1']!=""))

有了这个

if(($_POST['date1']>$odate)||($_POST['date1']==$odate)&&($_POST['date1']!=""))

你错过了 date1 的一个报价,也试试

$open_date = $_POST['date1'];
$close_date = $_POST['date2'];
$s=mysql_query("INSERT INTO registration_date (opening_date, closing_date)
                VALUES ('$open_date','$close_date')");

并尽量避免使用 mysql_* 函数,因为它们已被贬低。而是使用mysqli _* 函数或PDO语句

于 2013-06-20T08:46:46.817 回答
0

像这样获取系统日期function time()$odate=time();$_POST[date]以这样的数字转换:strtotime($_post[date])。在此之后,您可以执行以下操作:$_POST[date]>$odate。这样,您将有两个数字进行比较。

于 2013-06-20T08:52:49.710 回答