PHP и / или показывает противоположность того, что должно быть

0

Я показываю результаты базы данных, и я хотел бы скрыть пустые строки. Я проверяю, чтобы оба столбца не отображали 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>';
    }
}
  • 0
    Вы имеете в виду, почему он не работает с оператором AND?
  • 0
    Вы хотите (x == '') && (y == '') { empty row found } , в основном.
Теги:
operators
while-loop

1 ответ

1
Лучший ответ

Чтобы ответить на "нерабочую ожидаемую" часть вопроса, это может помочь прочитать логические функции. Изучайте таблицы истинности, и такие вещи становятся намного яснее. http://en.wikipedia.org/wiki/Truth_table

И будет false для: 0,0 1,0 0,1 и даст true для 1,1, поэтому использование AND означает, что вы показываете, только если оба столбца не равны нулю.

OR будет false только для: 0,0 и true для других комбинаций, поэтому использование OR будет отображать UNLESS, равное 0.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню