2013-02-11 100 views
2

我想显示“不提供”,如果addition_1在数据库中为空,并且它在数据库中不是空的,我想显示数据?我尝试了几种组合,看不出我缺少的东西。如果行空,回显默认文本,否则回显显示数据

<?php 
if (empty($row[addition_1])) { 
    echo "Not Provided"; 
} 
else { 
    echo $row[addition_1]; 
} 
?> 
+0

通过在循环中添加'print_r($ row); die;'来调试以获得一些洞察。 – keyboardSmasher 2013-02-11 03:34:24

回答

2

试着加引号的数组键,样变:

$row[addition_1] 

$row['addition_1'] 
+0

我只是试过,没有运气。如果(空行($ row ['addition_1'])) \t { \t \t echo“Not Provided”; \t} \t别的 \t { \t \t回波$行[ 'addition_1']; \t} ?>' – Nick 2013-02-11 03:31:26

1

一个替代办法是将它与COALESCE,而不是添加到您的SQL:

SELECT COALESCE(addition_1, 'Not Provided')... 

Ju另一种选择。这不承担addition_1是在db空...

如果它是空白,而不是NULL,那么试试这个:

SELECT COALESCE(NULLIF(addition_1,''), 'Not Provided')... 

好运。

+0

只有当它可以为空... – keyboardSmasher 2013-02-11 03:36:52

+0

@keyboardSmasher - 更新我的答案:) – sgeddes 2013-02-11 03:38:50

+0

哈哈,是的,我点击了“添加评论”后看到帖子更新消息。 :) – keyboardSmasher 2013-02-11 03:40:07

1

我一直在使用组合:

if (isset($row['addition_1']) && trim($row['addition_1'])) 

记住,你不能根据文档使用空()函数中的任何功能,这就是为什么我使用这个。如果你100%确定addition_1总是被设置,你可以跳过。

相关问题