2012-10-22 193 views
0
while ($row = mysql_fetch_array($results)) { 
    $results_array[$row['post_id']] = $row; 

    $arr = array($row[2] => $row[3]); 

    $location = trim($arr[cp_check_where_to_show_video]); 
    $video = trim($arr[cp_embed_video]); 

    echo $video; 

    if($location=='Video of the Day') 
    { 
     echo $location."\n"; 
     echo "---"; 
     echo $video; 
     echo "---"; 
    } 
} 

Output: 
    Video Text 
    Video of the Day 
    ------- 
    NULL 

這是事情。假設我有上面的代碼,'視頻'是從數據庫派生的。到目前爲止,我對我的查詢沒有任何問題,直到我添加了if語句。

第一個echo輸出預期的結果,但在if語句內部,「video」變爲NULL。我可以進入if語句並輸出除$視頻以外的任何內容。

請問有人可以告訴出了什麼問題或可能是錯誤的上述聲明?奇怪的。變量在IF語句中變爲NULL

+5

什麼是條件?這可能是問題所在。 – MJA

+0

nope。條件沒問題。看上面的代碼。我可以輸出「RawR!」但不是$視頻。 –

+0

+1以上。如果您不小心取消了$視頻條件,則最終會顯示null。測試此方法的方法是在IF後面運行echo $ video *並查看它是否仍爲空。 –

回答

1

(真正的註釋,但添加代碼,以便將在這裏)

調試解決方案1:添加錯誤報告;就在此之前,加上

error_reporting(E_ALL); 
ini_set('display_errors', 'on'); 

看看有什麼給你。

調試溶液2:

可能是的情況下「編輯器插入奇怪字符,我不能看到」。建議完全刪除if語句中的行(選擇整行,點擊刪除)以及引用$ video的行,並手動重新鍵入(不復制/粘貼)。隱藏的角色確實發生了 - 我能想到的唯一解決方案。

4

在比較中,人們經常忘記和使用=而不是==。它將條件設置爲true,如果$video處於該狀態,則可能意外地將$video設置爲null

+0

$視頻不被用在if條件中......到目前爲止,我仍然不知道哪裏出了問題。 grr .. –

1

我不知道,但它可能是這樣的。

它第一次迴應$視頻,但沒有進入if。 第二次爲NULL因此不會迴應什麼,但那張如果var_dumps NULL

編輯

例如把echo '----';echo $video;上述內部檢查,如果輸出是一樣的東西

---- 
video text 
---- 
Video of the Day 
NULL 

如果你有類似的東西

---- 
video text 
Video of the Day 
NULL 

那對我來說這完全是個謎。

+0

感謝您的回覆..我可以回聲$ location但but not $ video。 –

+0

我的意思是,因爲這是一個循環運行,你確定回報來自同一個實例嗎?把'echo'--------------';'放在'echo $ video'之上;'然後試試? – blackpla9ue

+0

當我在回聲$視頻的上方和下方添加回聲'---'時,請檢查我編輯的 – blackpla9ue