我编写了一个代码,其中一个值来自mysql,如果它是1,那么row应该是红色,如果是0,则该行应该是绿色。当我执行代码时,它总是转到else语句。
代码如下:
while ($row = mysqli_fetch_array($result))
{
$bprofit=$row['profit_loss'];
if ($bprofit == "1") {
$colour='#FF0000';
} else {
$colour='#31B404';
}
echo "<tr bgcolor=$colour>";
echo "<td>" . $bprofit . "</td>";
}
,输出为:
1
0
0
全部只有绿色。
有什么建议吗?
答案 0 :(得分:2)
你在$ bpprofit中有一个额外的p:
if ($bprofit == "1")
答案 1 :(得分:1)
将if ($bpprofit == "1")
更改为if ($bprofit == "1")
答案 2 :(得分:1)
除了其他答案中提到的拼写错误之外,我认为你需要像这样引用数组的第一个索引:
if ($bprofit[0] == "1") ...
修改
根据您的新代码,您确定要返回的值是字符串而不是数字吗?如果是数字,您希望if
语句如下所示:
if ($bprofit == 1) ...
答案 3 :(得分:1)
在这种情况下,使用var_dump()函数并查看变量实际包含的内容以及访问它的方式永远不会受到伤害。
答案 4 :(得分:0)
遇到上述问题时,请尝试在PHP中激活错误报告。一种方法是更新php.ini,但由于这可能会影响您不想要错误报告的其他项目,因此在需要时激活它可能更好。
重要的是您启用了通知的报告,因为当您使用尚未设置的变量时它们会出现。
下面的代码是一个简单的例子:
<?php error_reporting(E_ALL);
if ($undefined == 1) {
// do stuff
}
显示此页面时,将显示通知:
注意:未定义的变量:未定义 第3行的/var/www/test/undefined_example.php
当然,对于所有问题,这可能不是一个合适的解决方案,但它可能会帮助您找出要查找的位置。
它也可能让你成为更好的程序员;通过“提醒”您使用标准值声明变量,如果它们在以后使用之前并不总是分配。