0

以下のコードでは、if ステートメントが FALSE として評価されますが、TRUE であるべきだと思います。私は何を誤解していますか?

$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
}

引用符のすべてのバリエーションを試しました '、"、引用符なし

および MYSQL テーブルの列のデータとデータ型を BIT、CHAR、INT に変更する

PHP の AND CAST を BOOL と 'integer' に

AND 演算子 (=、==、=== など) を変更し、示されているように $a を渡す代わりに、if() に入力しようとしました

AND$result = $result['LIVE'];と $result を渡します。

PHP 型比較表PHP 型ジャグリング、およびマニュアルのその他の関連部分をすべて読みましたが、if(), while(), mysqli_fetch_array()これを自分で解決することはできません。

私はまだPHPを学んでおり、簡単に修正できると確信していますが、それを見ることができません。

4

4 に答える 4

1

$resultfalseになったため、while ステートメントは終了します。したがって、$result["live"] を呼び出すときには、すでにfalseになっています。

発行するだけで簡単に確認できます


var_dump($result);

条件文の直前。$a = 1

である ことを確認するには、ループ内でそのステートメントを発行する必要があります。 それはあなたの問題を解決します。 この説明が明確で、これが役立つことを願っています。


于 2013-07-26T01:42:56.487 に答える
0
$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
}
于 2013-07-26T01:49:36.390 に答える