2016-09-16 2 views
0

Я хочу проверить, нет ли идентификатора бронирования в базе данных, а также больше, чем сегодня. Рабочая часть проверки базы данных работает. Но эта часть не проходит, если условие истинно. Я думаю, что что-то не так с операциями ifelse.Как правильно использовать if else?

else if($checkindate > $today) 
{ 
    $bidErr="This booking is not comming today. Please check again"; 
} 

У меня есть полный код здесь. заказ Id bid приход из формы.

<?php 
    $today=date("Y-n-j"); 
    echo "<h4>Today is <font color='red'>".$today."</font></h4><br><br>"; 
    // define variables and set to empty values 
    $bidErr = ""; 
    $bid = ""; 

    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     $flag = 1; 
     if (empty($_POST["bid"])) { 
      $bidErr = "Booking ID is required."; 
      $flag=0; 
     } else { 
      $bid = test_input($_POST["bid"]); 
      // check if name only contains letters and whitespace 
      if (!preg_match("/^[0-9]*$/",$bid)) { 
       $bidErr = "Only Numbers are allowed"; 
       $flag=0; 
      } 
     } 
     include("connect.php"); 
     if($flag=="1"){ 
      $SQL="SELECT guestid,checkindate FROM bookings WHERE bookingid='$bid'"; 
      $run=mysql_query($SQL,$con) or die ("SQL error"); 
      $rec=mysql_fetch_array($run); 
      $row=mysql_num_rows($run); 

      $checkindate = $rec['checkindate']; 

      echo $checkindate; 

      if ($row < 1) { 
       $bidErr="Invalid BookingID. Please check again"; 
      } 
      else if($checkindate > $today) { 
       $bidErr="This booking is not comming today. Please check again"; 
      } else { 
       $_SESSION["chinbid"] = $bid ; 
       header("Location: checkinhandler.php"); 
       exit; 
      } 
     } 
    } 

    function test_input($data) { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 
?> 
+0

где у вас взята '$ _POST [" ставка "]' как '$ bid'? –

+1

Вы не должны использовать любые функции mysql _ *. Они устарели с php 5.5 и полностью удалены в php 7.0 – Manish

+0

попробуйте 'elseif' вместо' else if' – RST

ответ

0

Проверьте $checkindate так же, как $today.

Попытаться проверить $checkindate формат похож на date("Y-m-d") (2016-09-16). Если да, то $today будет как

$today=date("Y-m-d"); 

Проверьте php manual

Также я предлагаю пойти на mysqli_ * вместо использования mysql_ *. Потому что он устарел с php 5.5 и полностью удален в php 7.0.

+0

Спасибо. я проверю – din

+0

IT работает. Это дело $ today = date («Y-n-j»); \t \t и формат checkindate («Y-m-d»); спасибо – din

0

Попробуйте это:

else if(date("Y-n-j", strtotime($checkindate)) > $today) 

Я предполагаю, что ваш $checkindate не в том же формате (Y-н-J) в качестве вашей $today переменной.

+0

ok проверю .. спасибо – din

+0

спасибо. как вы сказали. Я починил это. – din

0
<?php 
$row='0'; 
date_default_timezone_set('UTC'); 
$date=date_create("2016-09-15"); 
$today = date("Ymd"); 
$date= date_format($date, 'Ymd'); 
echo "Checkin date is " . $date. "<br>"; 
echo "Today is " . $today."<br>"; 
if ($row < '1'){ 
    echo "no records"; 
} elseif ($date == $today) { 
    echo "dates are the same"; 
} else { 
    echo "check in handler"; 
} 
?> 
Смежные вопросы