Задать вопрос
mrusklon
@mrusklon
Не получается? Яростно гугли!

Почему не работает проверка на пустоту?

делаю запрос в БД, чтоб не описывать весь ответ, он просто выдает число, если оно есть то его выводит
проблема в том что в случае неудачного поиска, когда нет подходящих объектов для вывода числа , нечего не выводит, а нужно вывести "нет записей" или "0"
делаю такую проверку
if ($data['name'] == $value9['name']): ?>
                                        <?php if ($value9['cnt'] == "") {
                                            echo "0";
                                        } else {
                                            echo $value9['cnt'];
                                        } ?>

но не выводит 0 , вообще нечего не выводит , тоже и с empty($value9['cnt']) и $value9['cnt'] < 0
в чем может быть проблема?
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 3
Stimulate
@Stimulate
могу
echo (((isset($value9['cnt'])) AND ((int)$value9['cnt'] > 0)) ? $value9['cnt'] : '0');
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Надо не мучитЬся, а логически мыслить.

нИчего не выводит, а нужно вывести "нет записей" или "0"

Если условие if ($value9['cnt'] == "") не выполняется, это значит что в $value9['cnt'] не пустая строка или приравненное к ней значение.
Чтобы узнать, какое там зрачение на самом деле, надо сделать var_dump()
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Научитесь использовать var_dump, прям вот "в любой непонятной ситуации - делай вардамп".

2) использовать синтаксис if(): ... endif - моветон, он кроме того что избыточен, еще и не все иде его нормально воспринимают, и визуализация нарушается. Короче, совет дня - не используйте. А у вас он еще и не закрывается.

3) что вам дает открытие / закрытие тегов в каждой строке? Или это чисто эстетическое наслаждение - смотреть на кровоточащие глаза коллег, читающих ваш код?

4) if ($value9['cnt'] == "") это не проверка на пустоту, хотя в большинстве случаев оно будет работать, но это однозначно говнокод, который будет сыпать в лог варнинги, для таких проверок есть empty();

5) if ($data['name'] == $value9['name']) не будет работать, если $value9['name'] пустой, соответственно ВЕСЬ код внутри этой проверки работать не будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы