【发布时间】:2019-06-14 08:27:34
【问题描述】:
if 语句的前提是检查从数据库中选择的字段以检查它们是否为空(NULL)。在进入 StackOverflow 之前提到这一点是明智的,我已经尝试过 isset()、empty() 和 is_null(),但仍然没有设法让这个 if 语句正确识别为空的字段。我不确定我是否在这里遗漏了一些如此简单的东西。
如前所述,我已经尝试过 isset()、empty() 和 is_null(),但 if 语句似乎仍然卡在 if 语句的第一次迭代中,认为一个或多个字段实际上是空的,它们都包含一个值。
这是 if 语句:
if(($xQI['businessName'] == NULL) OR ($xQI['businessAddress1'] == NULL) OR ($xQI['businessCity'] == NULL) OR ($xQI['businessCounty'] == NULL) OR ($xQI['businessPostCode'] == NULL) OR ($xQI['businessTelephone'] == NULL) OR ($xQI['businessEmail'] == NULL) OR ($xQI['businessContactName'] == NULL)) {
header('location:../quotes-electricity-view.php?id=' . $idmd5 . '&v=n&c=bi');
} elseif(($xQI['electricity_mpanBottom'] == NULL) OR ($xQI['electricity_mpanTop'] == NULL)) {
header('location:../quotes-electricity-view.php?id=' . $idmd5 . '&v=n&c=mpan');
} elseif(($xQI['electricity_SiteName'] == NULL)) {
header('location:../quotes-electricity-view.php?id=' . $idmd5 . '&v=n&c=sname');
} elseif(($xQI['electricity_SiteUsage'] == NULL)) {
header('location:../quotes-electricity-view.php?id=' . $idmd5 . '&v=n&c=eac');
} else {
//代码在这里继续执行页面的其余部分
在这一点上,我们感谢任何和所有的帮助。 if 语句只选择最上面的输出作为结果,带你到结果为 &v=n&c=bi 的页面,这意味着它认为缺少一个业务细节条目,而实际上在测试中,每个字段有一个价值。非常感谢。
【问题讨论】:
-
你能告诉我们
var_dump($xQI)吗? -
顺便说一句...使用
||而不是OR -
@dharman 感谢您为我提供了回答我自己的问题的重要链接。我觉得自己像个正确的傻瓜。 $xQI 数组为 NULL。原因是它在 if 语句运行之前被关闭。因此,一个简单的括号移动允许代码在 while 循环中执行,从而可以看到值。都是因为一个括号......也感谢其他回答但标记的答案真的应该感谢 dharman。
标签: php if-statement logic