Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Почему при пустом значении запроса показывает, что он не пустой

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


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

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

794 | 281

D0Gmatist - 16 марта 2014 15:11 - Местный

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


Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

vk_159926832
206 | 5

vk_159926832 - 16 марта 2014 15:28 - Юзер

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

D0Gmatist
225

794 | 281

D0Gmatist - 16 марта 2014 15:33 - Местный

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

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

D0Gmatist
225

794 | 281

D0Gmatist - 16 марта 2014 15:35 - Местный

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

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

vk_159926832
206 | 5

vk_159926832 - 16 марта 2014 15:48 - Юзер

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

dj-avtosh
39

1479 | 390

dj-avtosh - 16 марта 2014 17:02 - шашлычник

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

skype: elhan.isaev

vk_159926832
206 | 5

vk_159926832 - 17 марта 2014 13:53 - Юзер

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

vk_159926832
206 | 5

vk_159926832 - 17 марта 2014 14:27 - Юзер

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

dj-avtosh
39

1479 | 390

dj-avtosh - 17 марта 2014 13:57 - шашлычник

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


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

skype: elhan.isaev

vk_159926832
206 | 5

vk_159926832 - 17 марта 2014 14:10 - Юзер

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

dj-avtosh
39

1479 | 390

dj-avtosh - 17 марта 2014 14:30 - шашлычник

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

skype: elhan.isaev

vk_159926832
206 | 5

vk_159926832 - 17 марта 2014 14:55 - Юзер

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

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

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