2014-07-03 35 views
-1

如果是ISSET(),我想回顯數據庫中的字段值。當我使用set測試下面的代碼並且沒有從同一頁面設置值時,它工作正常。爲什麼IF!empty()函數響應頁面上的值而不是來自數據庫?

if (!empty($row['YY'])) { 
    echo $row['YY']; 
} else { 
    echo "N/A";} 

這將顯示一個 「YES」

$row['YY'] = 'YES'; 

而這個顯示一個 「N/A」」

$row['YY'] = ''; 

然而,當使用相同的代碼,用於從一個取出查詢數據庫,設定值正確顯示,但一個空字段根本不顯示任何內容。 如何獲得一個空字段來顯示「N/A」的ELSE命令?

此外,我從中提取的列未設置爲NULL。 (如果這是相關的。)我也試過以下功能也不成功;空(),isset(),!isset()

+1

什麼'的var_dump($行[ 'YY' ])輸出? – machineaddict

+0

只是var_dump $行變量,看看裏面有什麼。 (另外,請確保顯示所有錯誤) – marty

+1

您是否曾想過'$ row ['YY']'可能是一個空格或一串不可見的字符(如新行或其他東西)?因爲聽起來就像這裏的情況 –

回答

1

如果$row['YY']中有空字符串,它將在! empty()檢查中返回true。

要重現上面的問題:在屏幕上

$row = array('YY' => ' '); 

if (! empty($row['YY'])) { 
    echo 1; 
} 

打印1

所以添加trim()功能來刪除空白:

$row['YY'] = trim($row['YY']); 
+0

他有空字符串,而不是字符串包含空格。 – panther

+1

如果它是空字符串,那麼'!空'檢查不會失敗。 – GGio

+0

當我終於明白這一點,它的工作。謝謝! :) –

相關問題