表存在,但它是空的。
表中没有数据,我等待它不回显任何内容并读取if ($notable1 == 'on')
,但它回显.$from_month.
和分隔符"| "
(当表不存在时,代码正常。)
问题出在哪里?我找不到。
foreach ($datesBooked_1_month as $value)
{
if ($result = mysqli_query($bdd, "SELECT * FROM `".$tab_from_month_year."` WHERE day = ".$value." "))
{
$data = (mysqli_fetch_assoc($result));
echo $data['day'].'/'`.$from_month.`"| ";
if ($data['roomtype_1'] <= 3) { echo $data['roomtype_1']."| " ;} else {echo "X| "; }
if ($data['roomtype_2'] <= 3) { echo $data['roomtype_2']."| " ;} else {echo "X| "; }
if ($data['roomtype_3'] <= 3) { echo $data['roomtype_3']."| " ;} else {echo "X| "; }
if ($data['roomtype_4'] <= 3) { echo $data['roomtype_4']."| " ;} else {echo "X| "; }
if ($data['roomtype_5'] <= 3) { echo $data['roomtype_5']."| " ;} else {echo "X| "; }
if ($data['roomtype_6'] <= 3) { echo $data['roomtype_6']."<br/>";} else{echo"X<br/>";}
}
else if (!$result){ $notable1 = 'on'; }
}
if ($notable1 == 'on')
{
foreach ($datesBooked_1_month as $value)
{
echo $value. "- Free #<br />";
}
}
答案 0 :(得分:1)
空结果仍然是有效结果。在做回声之前,你必须明确地测试数据是否存在,例如
$result = mysqli_query(...) or die(mysqli_error());
if (mysqli_num_rows($result) > 0) {
$data = mysql_fetch_assoc($result);
... echoes go here ...
}
的使用
您的测试完全无效。 $result
只会FALSE
fs查询本身失败(语法错误,数据库无法访问等等)。导致没有数据的查询仍然是一个有效的查询结果,并且会有一个正确的结果句柄......恰好代表一个空集。
答案 1 :(得分:1)
我认为您不应该检查查询(!$result)
的执行情况,因为查询实际上已执行,因此$result
不会出现错误,因为在情况表不存在的情况下会发生。
您应该只检查返回的行mysqli_num_rows == 0
,这意味着没有返回行