如何正确使用if语句?
问题描述:
我想检查一下,预订ID是否不在数据库中,以及它是否大于今天。数据库检查部分工作。但如果条件成立,这部分不会经历。我认为if
else
陈述有问题。如何正确使用if语句?
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;
}
?>
答
检查您的$checkindate
是否与$today
日期相同。
尝试检查$checkindate
格式与date("Y-m-d")
(2016-09-16)类似。如果是的话$today
会像
$today=date("Y-m-d");
此外,我建议去mysqli_ *而不是使用mysql_ *。因为它从PHP 5.5开始已被弃用,并在PHP 7.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";
}
?>
你在哪里把'$ _POST [“bid”]'作为'$ bid'? –
你不应该使用任何mysql _ * - 函数。他们已被弃用,因为PHP 5.5和完全删除在PHP 7.0 – Manish
尝试'elseif'而不是'else if' – RST