-1

几周以来我一直试图弄清楚这一点,这是一个简单的语句,但它从不执行 if 语句。我将变量回显到屏幕上,所以我知道它们存在并且每个条件都为真,但回显“某事”永远不会执行。

 if ($db_a==$session_a && $db_b==$session_b && $dbfreq_b=="1")

        {
         echo "something";
        }

我认为这只是括号,因为我最初有这个:

if (($db_a==$session_a) && ($db_b==$session_b) && ($dbfreq_b=="1")) 

我将存储在 MYSQL 数据库中的变量与会话变量进行比较。

如果我使用 Var_dump,则 db 变量为空,但它们会将预期的字符串值回显到屏幕上。

$db_a="username";
$session_a="username";
$db_b=="keyword string"; -mostly one word but could be multiple
$session_b=="keyword string";
$dbfreq_b="1"; - This is the frequency that the keyword appears in the MYSQL database

使用 vardump $db_a 和 $db_b 是 NULL 但它们回显了我期望在浏览器中看到的内容。

希望这能解释更多?

感谢您非常及时的帮助!!

4

1 回答 1

1

如果如您所说 $db_a = $session_a AND $db_b = $session_b AND $dbfreq_b = 1 那么条件返回 false 是不可能的。

请再次检查您的代码(所有 5 个变量)并确保满足所有条件。您可以将单个 IF 拆分为三个单独的条件,以便知道哪个条件返回 false。

if ($db_a == $session_a) {
    echo "first OK\n;"
} 
if ($db_b == $session_b) {
    echo "second OK\n";
}
if ($dbfreq_b == "1") {
    echo "third OK";
}

您可以将变量的值添加到您的问题中吗?

于 2013-02-07T15:13:40.307 回答