Перейти к содержимому


Форматирование, условие "Не содержит" (NOT LIKE)

форматирование not like

Сообщений в теме: 3

#1 ZeroCooL

    Участник

  • Пользователи
  • PipPip
  • 17 сообщений
  • Пол:Мужчина

Отправлено 17 Май 2013 - 09:20

Добрый день

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

В Форматировании в режиме мастера сделал условие типа:
Поле A (тип список) равно "Вариант 1" и
Поле B (тип Текстовое) не содержит "00000001"

В результате при переходе в таблицу над хедером пишет:
Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/fields.php(1266) : eval()'d code on line 1
Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/fields.php(1266) : eval()'d code on line 1
Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/fields.php(1266) : eval()'d code on line 1
Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/fields.php(1266) : eval()'d code on line 1
Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/fields.php(1266) : eval()'d code on line 1
и выделение не срабатывает.

Убираю второе условие - еррор пропадает, но выделение понятное дело работает не так, как хотелось бы.

В режиме эксперта это условие обрабатывает свзка not like. Может у нее должен быть какой-то формат записи особый?
Мне в идеале нужно условие типа Поле B not like "00000001%"

Подскажите, в чем может быть проблема?

PS Аккаунт SaaS, 1.9.8

#2 Гость_Roman_*

  • Гости

Отправлено 17 Май 2013 - 09:26

В форматировании пишется условие PHP, а не SQL, поэтому not like не сработает. В данном случае можно воспользоваться такой конструкцией:
strpos($cur_line['Поле B']['value'], '00000001') === 0
Вместе с первым условием:
strpos($cur_line['Поле B']['value'], '00000001') === 0 and $cur_line['Поле A']['value'] == 'Вариант 1'
А вообще это баг конструктора условий, будет исправлено в ближайшей ревизии.

#3 ZeroCooL

    Участник

  • Пользователи
  • PipPip
  • 17 сообщений
  • Пол:Мужчина

Отправлено 17 Май 2013 - 09:38

Просмотр сообщенияRoman (17 Май 2013 - 09:26) писал:

В форматировании пишется условие PHP, а не SQL, поэтому not like не сработает. В данном случае можно воспользоваться такой конструкцией:
strpos($cur_line['Поле B']['value'], '00000001') === 0
Вместе с первым условием:
strpos($cur_line['Поле B']['value'], '00000001') === 0 and $cur_line['Поле A']['value'] == 'Вариант 1'
А вообще это баг конструктора условий, будет исправлено в ближайшей ревизии.

Спасибо за ответ. Только для моего случая думаю будет правильнее так:
strpos($cur_line['Поле B']['value'], '00000001') === false and $cur_line['Поле A']['value'] == 'Вариант 1'

Теперь то, что нужно

Сообщение отредактировал ZeroCooL: 17 Май 2013 - 09:39


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Май 2013 - 11:38

Цитата

Только для моего случая думаю будет правильнее так:

Да, именно так и должно быть в исправленной ревизии.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных