Я показываю результаты базы данных, и я хотел бы скрыть пустые строки. Я проверяю, чтобы убедиться, что оба столбца не равны 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>';
}
}
Чтобы ответить на вопрос «не работает, как ожидалось», это может помочь в чтении логических функций. Изучите таблицы правды, и подобные вещи станут намного понятнее.
http://en.wikipedia.org/wiki/Truth_table
И будет ложным для:
0,0
1,0
0,1
и даст true для 1,1, поэтому использование AND означает, что вы будете отображаться, только если оба столбца не равны нулю.
ИЛИ будет ложным только для:
0,0
и true для других комбинаций, поэтому использование OR покажет UNLESS, если оба равны 0.
Других решений пока нет …