PHP和/或显示它应该是什么相反

时间:2015-02-02 20:07:14

标签: php while-loop operators

我正在显示数据库结果,我想隐藏空行。我正在检查以确保两个列在显示之前不等于0。我认为这需要&&运算符,但如果只有一列有0,则不会显示该行。如果我将其更改为||,则数据会正确显示。是否有理由以与预期相反的方式运作?

这是当前正常工作的php循环(但不是预期的):

while($placement = mysqli_fetch_assoc($placeQuery)){
    echo '<tr>';
    if(($totals[$placeID][$totaldate]['impr'] != 0) || ($totals[$placeID][$totaldate]['amt'] != 0)){
        echo '<td>'.$placement['type_name'].'</td>';
    }
}

1 个答案:

答案 0 :(得分:1)

要回答问题的“不按预期工作”部分,阅读逻辑功能可能会有所帮助。学习真值表,这种事情变得更加清晰。 http://en.wikipedia.org/wiki/Truth_table

AND将为false: 0,0 1,0 0,1 并且对于1,1将给出true,因此使用AND表示仅当两列都不为零时才显示。

OR仅对以下内容为false: 0,0 对于其他组合也是如此,因此使用OR将显示UNLESS都为0。