2012-10-22 148 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