2014-10-10 129 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