Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Почему при пустом значении запроса показывает, что он не пустой

Почему при пустом значении запроса показывает, что он не пустой


     16.03.2014    Общие вопросы, Общие вопросы по PHP, MySQL    2370

вопрос
Глупая ситуация, но я сам не пойму как она происходит. Выгружаю из таблицы dle_mymaterials всё, что там есть.

$mymateral= $db->super_query( "SELECT * FROM " . PREFIX . "_mymaterials WHERE name='{$name}'");


Если второе описание (столбец descr2) пустой, то должно при просмотре этого материала выдать что он пустой:
if($mymateral['descr2'] or strlen($mymateral['descr2']) > 1){
$content=$mymateral['descr2'];
}else{
$content="Второе описание отсутствует";
}

Но он ничего не выдает. Почему так случается?

Привожу структуру столбца:

Поле Тип Сравнение Null По умолчанию
descr2 text cp1251_general_ci Нет Нет

Рассчитываю на вашу помощь))

Ответа пока нет


12 комментариев

D0Gmatist
Юзер

D0Gmatist - 16 марта 2014 15:11 -

что хранит descr2
$mymateral['descr2']


vk_159926832
Юзер

vk_159926832 - 16 марта 2014 15:28 -

Текст/HTML и т.п. Но в зависимости от материала он может быть пустой. Как в моей ситуации.

D0Gmatist
Юзер

D0Gmatist - 16 марта 2014 15:33 -

попробуй проверять не strlen http://www.php.su/strlen а с помощью isset http://www.php.su/isset

D0Gmatist
Юзер

D0Gmatist - 16 марта 2014 15:35 -

То бишь так
if ( isset ( $mymateral['descr2'] ) ) {
    $content = $mymateral['descr2'];
} else {
    $content = "Второе описание отсутствует";
}

vk_159926832
Юзер

vk_159926832 - 16 марта 2014 15:48 -

Спасибо за ответ, но ваш код не подходит, всеравно выводится пустое место. С помощью strlen я проверял длину строки, если она меньше одного, то выводит ошибку то что нет второго описания.

dj-avtosh
PHP-developer

dj-avtosh - 16 марта 2014 17:02 -

$content =  ! empty ( $mymateral['descr2'] ) ? $mymateral['descr2'] : "Второе описание отсутствует";

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

vk_159926832
Юзер

vk_159926832 - 17 марта 2014 13:53 -

Спасибо за ответ, но факт в том, что как и мой изначальный код этот способ работает не для всех. У некоторых выводится сообщение, а у некоторых не выводится.

vk_159926832
Юзер

vk_159926832 - 17 марта 2014 14:27 -

Я практически не писал никогда через такой метод, а как внести несколько переменных в такое условие? После обычного внесения ($var1=""; $var2="";) мне выдало синт. ошибку.

dj-avtosh
PHP-developer

dj-avtosh - 17 марта 2014 13:57 -

$mymateral['descr2']  = trim ( $mymateral['descr2']  ); 


Выше той конструкции. Вдруг там просто пробелы.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

vk_159926832
Юзер

vk_159926832 - 17 марта 2014 14:10 -

Спасибо большое ещё раз, я что то даже не догадался использовать трим. Но в PHPMyAdmin при редактировании этой поляны написано что там ничего нет. - Загадка :)

dj-avtosh
PHP-developer

dj-avtosh - 17 марта 2014 14:30 -

Погугли php тернарные операторы.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

vk_159926832
Юзер

vk_159926832 - 17 марта 2014 14:55 -

О, а я даже не знал как он называется :) спасибо еще раз :)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх