-1

我正在写这段代码:

$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”......

4

4 回答 4

3

您使用了错误的运算符。通过使用=,您分配的值$dateIn始终为真,并将始终导致该代码块执行。

if ($DateIn = $dateQueried) {

应该

if ($DateIn == $dateQueried) {
于 2013-03-13T15:18:42.137 回答
2
if ($DateIn = $dateQueried) {

错了,这是一个任务。它应该是

if ($DateIn == $dateQueried) {
于 2013-03-13T15:19:10.393 回答
1

=不是比较运算符,它是赋值运算符。分配总是成功的,因此它总是输出case 1,因为它确实总是正确的。

您应该简单地更改您=的 for==进行比较。

if ($DateIn == $dateQueried) {
于 2013-03-13T15:19:34.850 回答
-3
  1. var_dump($dateQueried, $DateIn, $resRow["ArrivalDate"]);
  2. 思考。
  3. 那==每个人都提到的事情
  4. 学习调试你的代码
于 2013-03-13T15:21:04.377 回答