Not NULL и пустое значение поля

 
Посетитель
small user social cms
Медаль
Сообщений: 779
Не могу понять
поле varchar NOT NULL

Надо выводить только значение равное нулю и прятать пустое значение

условие
{if $char == 0 } $char.value {/if}

В результате все равно выводятся и нулевые и пустые значения, а как заставить игнорировать пустые значения?
Посетитель
small user social cms
Медаль
Сообщений: 779
Gumoff:

Не могу понять
поле varchar NOT NULL

Надо выводить только значение равное нулю и прятать пустое значение

условие
{if $char == 0 } $char.value {/if}

В результате все равно выводятся и нулевые и пустые значения, а как заставить игнорировать пустые значения?

Блин - "База не знает равен ли null единице, т.к. null - это не определен."
Реклама
cms
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4361
{if $char === 0 || $char === '0'} {$char} {/if}
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 779
Fuze:

{if $char === 0 || $char === '0' } {$char.value} {/if}

Сработало dance
Вот это тонкости - Спасибо FUZE !!!
Посетитель
small user social cms
Медаль
Сообщений: 779
дело в этом $char == '0' - всего две кавычки сыграли свою роль

загадка экранирования нуля кавычками не раскрыта
Редактировалось: 2 раз (Последний: 14 октября 2016 в 23:21)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4361
Gumoff:
загадка экранирования нуля кавычками не раскрыта
Это не экранирование. Это строка с символом 0, а без кавычек - число 0. Типы данных.

Следующие значения воспринимаются как пустые:

'' (пустая строка - две одинарные кавычки, между ними ничего нет)
0 (целое число)
0.0 (дробное число)
'0' (строка)
NULL
FALSE
array() (пустой массив)
$var; (переменная объявлена, но не имеет значения)

http://php.net/manual/ru/function.empty.php

Тройное равно ( === ) это строгое сравнение переменных, при котором проверяются и их типы (по типам ссылка выше).

7 == '7' // это правда
7 === '7' // это ложь
7 === 7 // это правда
0 == false // это правда
0 === false // ложь
Редактировалось: 1 раз (Последний: 15 октября 2016 в 01:04)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 779
Fuze:

Gumoff:
загадка экранирования нуля кавычками не раскрыта
Это не экранирование. Это строка с символом 0, а без кавычек - число 0. Типы данных.

Следующие значения воспринимаются как пустые:

'' (пустая строка - две одинарные кавычки, между ними ничего нет)
0 (целое число)
0.0 (дробное число)
'0' (строка)
NULL
FALSE
array() (пустой массив)
$var; (переменная объявлена, но не имеет значения)

http://php.net/manual/ru/function.empty.php

Тройное равно ( === ) это строгое сравнение переменных, при котором проверяются и их типы (по типам ссылка выше).

7 == '7' // это правда
7 === '7' // это ложь
7 === 7 // это правда
0 == false // это правда
0 === false // ложь

Спасибо :)

В моем случае работает и не строгое сравнение переменных scratch

Как понял идет проверка на пустую строку

$char.value ==='0' вернет false (то есть ложь - значение не пустое)
$char.value =='0' вернет true (то есть правда - значение пустое)
но В моем случае работает и не строгое сравнение переменных $char.value =='0'
popcorn
Редактировалось: 1 раз (Последний: 15 октября 2016 в 11:07)
Посетитель
small user social cms
Медаль
Сообщений: 779
так или иначе решено
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: