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

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


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

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

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

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

skype: elhan.isaev

vk_159926832
Юзер

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

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

vk_159926832
Юзер

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

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

dj-avtosh
шашлычник

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

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


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

skype: elhan.isaev

vk_159926832
Юзер

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

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

dj-avtosh
шашлычник

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

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

skype: elhan.isaev

vk_159926832
Юзер

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

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

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

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

наверх