变量未从if语句正确实现

时间:2013-10-24 21:50:58

标签: php html mysql variables if-statement

我有一个if语句,如果内容存在于行的$pc162v列中,则应该将变量$vid设置为MySQL表中指定的链接。问题是,PHP检测到MySQL中有链接,但没有正确设置$pc162v变量。

这是变量声明:

$pc162v = "";
$vid162 = '<embed width="420" height="236" src="'.$pc162v.'" type="application/x-shockwave-flash"></embed>';

以下是if语句的部分:

if (empty($row[7])) {
   $vid162 = '';
}
else {
   $pc162v = $row[7];
}

在我的网络浏览器中,使用变量$vid162的代码部分显示如下:

<embed width="420" height="236" src="" type="application/x-shockwave-flash">

我也尝试将$ vid162设置为:

<embed width="420" height="236" src="<?php echo $pc162v; ?>" type="application/x-shockwave-flash"></embed>

只是在我的网络浏览器中生成代码:

<embed width="420" height="236" src="<?php echo $pc162v; ?>" type="application/x-shockwave-flash">

希望有人有解决方案!提前谢谢。

2 个答案:

答案 0 :(得分:1)

您声明一个空的var $ pc162v,然后在下一行使用它来填充$ vid162中的src属性。我会用:

$vid162 = '';

if (!empty($vid)) //Or $row[7], if that contains the url
    $vid162 = '<embed width="420" height="236" src="'.$vid.'" type="application/x-shockwave-flash"></embed>';

答案 1 :(得分:0)

我假设您在调用之前将变量声明为空,只是为了向我们演示。如果没有,那肯定是问题。

看来你的代码中没有解析PHP本身。虽然我无法具体告诉您是否在没有看到与数据库的交互的情况下设置变量,但我可以说,如果从正确配置了PHP的Web服务器提供服务,PHP应始终进行解析。如果您知道在其他地方正在正确解析PHP,请确保您使用的页面具有.php扩展名。

如果您不确定变量是否设置正确,我会做的是设置一个测试用例。换句话说,在这种情况下,您认为变量将从数据库中正确拉出,然后简单地在页面上的某处回显它。或者,更好的是,您可以使用Kint之类的工具来帮助您进行调试。它绝对比旧的var_dump($ var); die();商业,虽然这也是一种选择。

因此,实质上,我将验证您的页面上是否正在解析PHP,然后通过echo或使用var_dump测试变量。