2013-06-20 5 views
-2

У меня есть форма с двумя текстовыми полями, где я показываю календарь в календаре, как и в любых других онлайн-формах, чтобы выбрать дату. Пользователь выбирает дату. Я хочу, чтобы пользователь выбирал дату, которая равна или после системной даты, например, завтра. Я сравниваю даты, а затем пытаюсь вставить их в базу данных с двумя столбцами open_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']!="")) 

Вы пропустили одну цитату для 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_ * функции из-за них depricated .Instead использовать 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)) 
Смежные вопросы