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


Работа со списком


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

#1 aleks.goodcolor

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

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 13 Январь 2015 - 11:24

Добрый день. имеется поля типа "список" с множественным выбором. делаю запрос:
$spec = data_select(740,"`status`=0 AND `f11860`='",$line['Счет']['На кого']['ID'],"' AND `f11890` LIKE '".$line['Позиция номенклатуры']['Группа']['Группа']."'");
  $specr = sql_fetch_assoc($spec);
  $spsk = $specr['f11870'];
По непонятным причинам запрос возвращает 0. Я думаю что проблема возникает из-за множественного выбора в списке. Подскажите пожалуйста как правильно составить запрос для такого списка(f11890).

Сообщение отредактировал aleks.goodcolor: 13 Январь 2015 - 14:20


#2 CbCoder

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

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

Отправлено 13 Январь 2015 - 17:50

1. В множественном списке id групп хранятся между "-", например "-1-" (одно выбранное значение) или "-1-2-" (два выбранных значения) и т.д.
2. LIKE без служебных символов ищет только полное совпадение (аналог "="), например LIKE "-1-" найдет только "-1-". Если нужно искать внутри (например и "-1-" и "-1-2-"), используйте "%":

`f11890` LIKE '%-".$line['Позиция номенклатуры']['Группа']['Группа']."-%'"

Такой вариант найдет и записи, где данная группа выбрана одна, и там где кроме нее выбраны и другие.

#3 aleks.goodcolor

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

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 16 Январь 2015 - 11:16

Заработало, только если не указывать "-" перед line. Я так понимаю что у списка с предустановленными позициями с множественным выбором используется другой формат.

#4 CbCoder

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

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

Отправлено 16 Январь 2015 - 11:38

Неверно прочел ваше сообщение, думал речь о типе "группа", исходя из имени поля видимо. Для полей типа "список" разумеется не нужны "-", там значения хранятся через перевод строки.





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

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