Php if语句的计算结果与预期不符

Php if语句的计算结果与预期不符,php,mysql,Php,Mysql,在下面的代码中,if语句在我认为应该为TRUE的地方被计算为FALSE。 我误解了什么 $sql = "SELECT * FROM LIVE"; $res = mysqli_query($con, $sql); while ($result = mysqli_fetch_assoc ($res)){ var_dump($result['LIVE']); //string '1' (length=1) echo $result['LIVE']. "<br>"; //1 } $

在下面的代码中,if语句在我认为应该为TRUE的地方被计算为FALSE。 我误解了什么

$sql = "SELECT * FROM LIVE";     
$res = mysqli_query($con, $sql);
while ($result = mysqli_fetch_assoc ($res)){
var_dump($result['LIVE']); //string '1' (length=1)
echo $result['LIVE']. "<br>"; //1
}
$a = "1";

if($result['LIVE'] == $a){
echo "It is live!";
}
else {
echo "not live!"; //this gets echoed
}
$sql=“选择*现场”;
$res=mysqli\u查询($con,$sql);
而($result=mysqli\u fetch\u assoc($res)){
var_dump($result['LIVE']);//字符串“1”(长度=1)
echo$result['LIVE']。“
”;//1 } $a=“1”; 如果($result['LIVE']==a){ 回声“它是活的!”; } 否则{ echo“not live!”;//这会得到回应 }
我尝试了引号“,”的所有变体,没有引号

将MYSQL表中列的数据和数据类型更改为BIT、CHAR、INT

并将PHP转换为BOOL和“integer”

更改操作符eg=,=,==,并且尝试只在if()中键入,而不是传入$a,如图所示

$result=$result['LIVE'];
并传入$result

我已经阅读了和以及手册的所有其他相关部分
if()、while()、mysqli\u fetch\u array()
等,自己无法解决这个问题


我仍在学习PHP,我确信这是一个很容易解决的问题,但我就是看不到。

您没有保存
$result
的值;在
的最后一次迭代中,while
循环
$result
将被设置为false,因为没有更多的行要遍历。这也是触发while循环退出的原因

您需要将值设置为另一个临时变量

while ($result = mysqli_fetch_assoc ($res)){
$temp = $result['LIVE']; //1
}
$a = "1";

if($temp == $a){

while语句退出是因为$result变为false。因此,在调用$result[“live”]时,它已经变为false

您只需通过发出

var_dump($result);
就在条件语句之前。

要确保$a=1,必须在循环内发出该语句。
那会解决你的问题。


希望这个解释清楚,这会有所帮助。

while循环将重复,并将$result设置为mysqli_fetch_assoc()的值。当mysqli_fetch_assoc()中没有更多结果时,它返回false。因此,在您尝试对其求值时,$result===false。在PHP中回显false不会输出任何内容。回显!false输出1。

$result=“”;
$result = "";

$sql = "SELECT * FROM LIVE";     
$res = mysqli_query($con, $sql);`
while ($result = mysqli_fetch_assoc ($res)){
$result = $result['LIVE'];
echo $result['LIVE']. "<br>"; //1
}
$a = "1";

if($result == $a){
echo "It is live!";
}
else {
echo "not live!"; //this gets echoed
}
$sql=“选择*从现场”; $res=mysqli\u查询($con,$sql)` 而($result=mysqli\u fetch\u assoc($res)){ $result=$result['LIVE']; echo$result['LIVE']。“
”;//1 } $a=“1”; 如果($result==$a){ 回声“它是活的!”; } 否则{ echo“not live!”;//这会得到回应 }
在php中使用
==
让我害怕。我很少使用它