2013-02-07 67 views
-1

我一直試圖弄清楚這幾個星期,這是一個簡單的語句,但它從來沒有執行if語句。我向屏幕迴應了變量,所以我知道它們存在並且每個條件都是真實的,但回聲「某事」永遠不會執行。PHP多條件如果語句不返回任何內容

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但他們附和什麼,我期待看到瀏覽器。

希望這可以解釋一些事情?

謝謝你非常及時的幫助!

+0

以及所有這些變量的價值是什麼? – Kalpesh

+1

當你var_dump每個變量時你會得到什麼? –

+0

你可以通過'var_dump'顯示每個變量的值,它將顯示類型。特別是,我很想知道'$ dbfreq_b'是什麼。 –

回答

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"; 
} 

您可以將變量的值添加到您的問題嗎?

+0

感謝這 - 我得到了第二和第三不行第一。所以這是導致問題的用戶名。 – user2051199

+0

剛注意到db_a是一個數組,因此NULL – user2051199