2014-10-10 84 views
1

我在我的SQL数据库中有可变类型的数据,并且我使用PHP来表示一个表。0的SQL字段值返回空

有时我有3列,有时我有更多,这取决于数据的类型。 如果我使用:

$fourthcolumn=$row['fourth']; 
    if(empty($fourthcolumn)){ 
    // DO NOTHING 
    }else{ 
    echo "<td class='fourth'>" . $fourthcolumn. "</td>"; 
    } 

然后,它工作正常但有一个例外: 一些列的数量。当数量为'0'时,它将返回为空,并且不会使td的值为'0'。

在我的结构,如果没有信息,则该单元是完全空白,而这正是我希望回来为空

有没有办法返回“0”?我究竟做错了什么?

回答

3

empty(0)计算结果为真在PHP

see manual

,所以你可以明确地检查

if(empty($fourthcolumn) && $fourthcolumn !==0 && $fourthcolumn !== "0"){ 
// DO NOTHING 
}else{ 
echo "<td class='fourth'>" . $fourthcolumn. "</td>"; 
} 
+0

这应该很可能需要用'||'代替'&&' – 2014-10-10 17:27:49

+0

@ Fred-ii-答案是基于在else问题中处理的积极结果。编辑清楚 – andrew 2014-10-10 18:00:16

+0

好的,这是有道理的。我认为或者会工作。 OP尚未对任何答复/评论做出回应;只有时间会告诉;) – 2014-10-10 18:01:35

0

使用这一个

$fourthcolumn=$row['fourth'] ?: 0; 

它这样描述

如果$row['fourth']为null,则0

+0

我需要做不同的事情,0和空,他们是不是在我的结构相同。我需要显示0,而不是显示null。尽管谢谢你的回答! – JeremyC 2014-10-10 18:17:40

+0

我的意思是如果它为空然后它会返回一个0值,你可以试试 – 2014-10-10 18:20:17

0

BOOL空(混合$ VAR)

确定变量是否为被认为是空的。如果变量不存在或者其值等于FALSE,则该变量被认为是空的。如果变量不存在,empty()不会生成警告。

在PHP中,0 == false。如果检查值是如此空虚(正确)返回true 0

这个问题可能如下解决:

if(empty($fourthcolumn) && $fourthcolumn !== 0 && $fourthcolumn !== "0"){ 
// DO NOTHING 
}else{ 

你在哪里检查,以确保$ fourthcolumn不等于数量0或字符串“0”(使用严格相等,所以它不会匹配false或空字符串,例如)。

+0

是的,这是我所需要的。尽管我首先看到了安德鲁的帖子,但它不会让我将这两个标记为正确的答案。谢谢! – JeremyC 2014-10-10 18:39:25

1

空的PHP文件()定义它是如何起到“确定变量是否被认为是如果变量不存在或者其值等于FALSE,则该变量被认为是空的。“

http://php.net/manual/en/function.empty.php

0将被认为是假的。

我会建议使用,而不是

$fourthcolumn=$row['fourth']; 
if(isset($fourthcolumn)){ 
    echo "<td class='fourth'>" . $fourthcolumn. "</td>"; 
}else{ 
    // DO NOTHING 
} 

isset检查,如果一个变量不为空。

http://php.net/manual/en/function.isset.php

+0

完美感,谢谢。我正在给它一个镜头 – JeremyC 2014-10-10 18:18:42

+0

这种思维方式对我来说更有意义,但是我设置变量以防万一它有数据,所以它总是被设置。虽然谢谢! – JeremyC 2014-10-10 18:30:28