2009-10-16 60 views
31

这里是下面的代码:PHP检查空

$query = mysql_query("SELECT * FROM tablex"); 

if ($result = mysql_fetch_array($query)){ 

    if ($result['column'] == NULL) { print "<input type='checkbox' />"; } 
    else { print "<input type='checkbox' checked />"; } 
} 

如果值NOT NULL我仍然得到uncheked框。我从上面做错了什么,shoudnt $result['column'] == NULL工作?

任何想法?

+0

这真的是你的代码吗?你有一个编码错误,可能是一个error_log文件 – 2009-10-16 05:37:20

+0

我只是打印复选框。并检查其值是否为空。它似乎这样做.. Hense它总是进入第一个如果陈述 – 2009-10-16 05:41:10

+0

代码发布是缺少一个正确的paren和一个正确的大括号,我得到了 - 投票发现? * eyeroll * – 2009-10-16 06:01:20

回答

70

使用is_null===运营商。

is_null($result['column']) 

$result['column'] === NULL 
+3

Nvm .... Ima twonk ..想通了:D ... Il标记你的回答 – 2009-10-16 05:48:26

1

我想你想用整数使用

mysql_fetch_assoc($query) 

而不是

mysql_fetch_row($query) 

后者返回一个正常的数组索引,而前者返回一个关联数组,指数由字段名称。

+0

sry即时使用mysql_fetch_array()...把错误的一个在..编辑现在 – 2009-10-16 05:43:51

3

确保列的值实际上是NULL,而不是一个空字符串或0

+0

我有两个地方的结果......它的晚了,我的大脑被炸毁..正是我做了解决:D – 2009-10-16 05:50:55

+0

这就是为什么fernyb的答案不是一个可取的解决方案。 – 2017-01-29 17:24:52

4

有关使用

if (empty($result['column']))

+0

使用PHP的'empty()'函数为解释留下了太多空间(http://php.net/manual/en/function.empty.php),它更多地是针对一般编程场景的语言特定解决方案。如果他使用'===',他将有一个解决方案,他可以使用多种语言。 – 2017-01-29 17:23:56

-1

有时候,当我知道我跟数字打交道如何,我用这个逻辑(if result is not greater than zero):

if (!$result['column']>0){ 

}