2013-06-20 117 views
-2

我有一个窗体有两个文本框,我在哪里显示月份日历,就像在任何其他在线窗体中选择日期一样。用户选择日期。我希望用户选择一个等于或等于明天系统日期之后的日期。我正在比较日期,然后尝试将其插入到具有两列opening_date和截止日期的数据库中。我甚至不想将文本框留空。我有下面的代码,但没有解决。插入日期到数据库

<?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"; 

} 
?> 
+2

什么是确切的错误?你的php代码中也有语法错误,请编辑它。 – Fracsi

+0

请注意,mysql_ *函数已被弃用。看看PDO或mysqli。 http://www.php.net/manual/en/book.pdo.php或http://www.php.net/manual/en/book.mysqli.php – Fracsi

+0

@Fracsi当你看看这个评论需要放弃对mysql_ * :) http://brightmeup.info/comment.html –

回答

0

更换

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

与此

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

您已经错过了一个报价日期1,也尝试像

$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_ *函数由于他们是depricated。相反使用的mysqli _ *函数或PDO声明

0

获取系统日期与function time()这样的:$odate=time();和trasform $_POST[date]在许多这样的:strtotime($_post[date])。在此之后,您可以这样做:$_POST[date]>$odate。这样你将有两个数字进行比较。

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))