我正在编写以下代码:
$dateQueried = '2013-03-18';
$reservQuery = "SELECT * FROM bkng WHERE ArrivalDate <= '$dateQueried' AND DepartureDate > '$dateQueried'";
$rsrv = mysql_query($reservQuery) or die(mysql_error());
$resRow = mysql_fetch_row($rsrv);
$DateIn = strtotime($resRow["ArrivalDate"]);
$DateOut = strtotime($resRow["DepartureDate"]);
$dateQueried = strtotime($dateQueried);
if ($DateIn = $dateQueried) {
echo 'case 1';
} elseif ($DateIn < $dateQueried) {
echo 'case 2';
} else {
echo 'case 3';
}
问题是,我无法进入案例2或案例3……有什么我错过的吗?
我尝试打印变量,并尝试将它们放入var_dump()
:如果它返回例如"String(10('2013-03-18'",则在如果它返回"NULL"时插入。。。
您使用了错误的运算符。通过使用=
,您将值分配给$dateIn
,该值始终为true,并将始终导致代码块执行。
if ($DateIn = $dateQueried) {
应该是
if ($DateIn == $dateQueried) {
if ($DateIn = $dateQueried) {
是错误的,这是一项任务。应该是
if ($DateIn == $dateQueried) {
=
不是比较运算符,而是赋值运算符。赋值总是成功的,因此它总是输出case 1
,因为它确实总是true。
您只需将=
更改为==
即可进行比较。
if ($DateIn == $dateQueried) {
var_dump($dateQueried, $DateIn, $resRow["ArrivalDate"]);
- 想想看
- 大家都提到的那件事
- 学习调试您的代码