Технический сбой

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

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


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

вопрос
Глупая ситуация, но я сам не пойму как она происходит. Выгружаю из таблицы 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 - -

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


vk_159926832
Юзер

vk_159926832 - -

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

D0Gmatist
Юзер

D0Gmatist - -

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

D0Gmatist
Юзер

D0Gmatist - -

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

vk_159926832
Юзер

vk_159926832 - -

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

dj-avtosh
PHP-developer

dj-avtosh - -

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

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

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

vk_159926832
Юзер

vk_159926832 - -

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

vk_159926832
Юзер

vk_159926832 - -

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

dj-avtosh
PHP-developer

dj-avtosh - -

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


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

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

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

vk_159926832
Юзер

vk_159926832 - -

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

dj-avtosh
PHP-developer

dj-avtosh - -

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

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

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

vk_159926832
Юзер

vk_159926832 - -

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

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

наверх