Php 0的SQL字段值返回空

Php 0的SQL字段值返回空,php,sql,Php,Sql,我的SQL数据库中有各种类型的数据,我正在用PHP弹出一个表 有时我有3列,有时我有更多,这取决于数据的类型。 如果我使用: $fourthcolumn=$row['fourth']; if(empty($fourthcolumn)){ // DO NOTHING }else{ echo "<td class='fourth'>" . $fourthcolumn. "</td>"; } $fourthcolumn=$row

我的SQL数据库中有各种类型的数据,我正在用PHP弹出一个表

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

    $fourthcolumn=$row['fourth'];
    if(empty($fourthcolumn)){
    // DO NOTHING
    }else{
    echo "<td class='fourth'>" . $fourthcolumn. "</td>";
    }
$fourthcolumn=$row['fourth'];
if(空($4列)){
//无所事事
}否则{
回显“$fourthcolumn.”;
}
然后,它会按预期工作,但有一个例外: 有些列是数量。当数量为“0”时,它返回为空,不会使td的值为“0”

在我的结构中,如果没有信息,那么单元格是完全空白的,这就是我希望返回的空单元格

是否有任何方法返回“0”?我做错了什么?

用这个

$fourthcolumn=$row['fourth'] ?: 0;
它是这样描述的

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

使用此值

$fourthcolumn=$row['fourth'] ?: 0;
它是这样描述的

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

bool empty(混合$var)

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

在PHP中,0==false。因此,如果检查的值为0,则empty(正确)返回true

问题可以通过以下方式解决:

if(empty($fourthcolumn) && $fourthcolumn !== 0 && $fourthcolumn !== "0"){
// DO NOTHING
}else{
检查以确保$fourthcolumn不等于数字0或字符串“0”(使用严格相等,因此它不会匹配false或空字符串,例如)

bool empty(混合$var)

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

在PHP中,0==false。因此,如果检查的值为0,则empty(正确)返回true

问题可以通过以下方式解决:

if(empty($fourthcolumn) && $fourthcolumn !== 0 && $fourthcolumn !== "0"){
// DO NOTHING
}else{
检查以确保$fourthcolumn不等于数字0或字符串“0”(使用严格相等,因此它不会匹配false或空字符串,例如)。

empty(0)
在php中计算为true

所以你可以明确地检查

if(empty($fourthcolumn) && $fourthcolumn !==0 && $fourthcolumn !== "0"){
// DO NOTHING
}else{
echo "<td class='fourth'>" . $fourthcolumn. "</td>";
}
if(空($fourthcolumn)和&$fourthcolumn!==0和&$fourthcolumn!==0){
//无所事事
}否则{
回显“$fourthcolumn.”;
}
empty(0)
在php中计算为true

所以你可以明确地检查

if(empty($fourthcolumn) && $fourthcolumn !==0 && $fourthcolumn !== "0"){
// DO NOTHING
}else{
echo "<td class='fourth'>" . $fourthcolumn. "</td>";
}
if(空($fourthcolumn)和&$fourthcolumn!==0和&$fourthcolumn!==0){
//无所事事
}否则{
回显“$fourthcolumn.”;
}
php文档for empty()将其功能定义为“确定变量是否为空。如果变量不存在或其值等于FALSE,则将其视为空。”

0将被视为错误

我建议改用

$fourthcolumn=$row['fourth'];
if(isset($fourthcolumn)){
    echo "<td class='fourth'>" . $fourthcolumn. "</td>";
}else{
    // DO NOTHING
}
$fourthcolumn=$row['fourth'];
if(isset(第四列)){
回显“$fourthcolumn.”;
}否则{
//无所事事
}
isset检查变量是否不为null

php文档for empty()将其功能定义为“确定变量是否为空。如果变量不存在或其值等于FALSE,则视为空。”

0将被视为错误

我建议改用

$fourthcolumn=$row['fourth'];
if(isset($fourthcolumn)){
    echo "<td class='fourth'>" . $fourthcolumn. "</td>";
}else{
    // DO NOTHING
}
$fourthcolumn=$row['fourth'];
if(isset(第四列)){
回显“$fourthcolumn.”;
}否则{
//无所事事
}
isset检查变量是否不为null


最有可能需要的是
|
而不是
&&
@Fred ii-答案基于在问题中的else条件下处理的肯定结果。编辑为clearOk,这很有意义。不过我想这两种方法都可以。OP尚未回复任何答案/评论;只有时间能证明一切;)这很可能需要
|
而不是
&&
@Fred ii-答案基于问题中else条件下处理的肯定结果。编辑为clearOk,这很有意义。不过我想这两种方法都可以。OP尚未回复任何答案/评论;只有时间能证明一切;)我需要对0和null做不同的事情,它们在我的结构中不一样。我需要显示0,而不是显示null。谢谢你的回答!我的意思是如果它为null,那么它将返回一个0值,你可以尝试它。我需要对0和null做不同的事情,它们在我的结构中不一样。我需要显示0,而不是显示null。谢谢你的回答!我的意思是,如果它为空,那么它将返回一个0值,你可以尝试它。这种思维方式对我来说更有意义,但是我正在设置变量,以防它有数据,所以它总是被设置的。谢谢你!这种想法对我来说更有意义,但是我正在设置变量,以防它有数据,所以它总是被设置的。谢谢你!是的,这就是我需要的。不过我先看了安德鲁的帖子,它不会让我把两个都标为正确答案。谢谢是的,这就是我需要的。不过我先看了安德鲁的帖子,它不会让我把两个都标为正确答案。谢谢