Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

$query_where и поле множественный выбор

12.02.2016, 10:16
kostyara
kos

Зарегистрирован:
2011-04-26
Сообщений: 29

Есть поле с содержимым типа ",1,7,9," (Это множественный выбор из списка, в данном случае специальности сотрудника)

На странице полного просмотра сотрудника необходимо вывести других сотрудников у которых хоть одна специальность совпадает с текущим.

Т.е. если мы находимся на странице сотрудника с специальностями ',1,4,8,' и есть еще сотрудник с специальностями ',2,4,7,' то есть совпадение по специальности с id = 4, т.е. выводим второго сотрудника.

Как сделать выборку $query_where?
12.02.2016, 10:50
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

только like '%,4,%' - в надежде что сотрудников не тысячи
12.02.2016, 10:51
Voldgold
Владимир Мизёв
Voldgold

Зарегистрирован:
2014-11-20
Сообщений: 13

Это ищите?

mizevvln
12.02.2016, 11:29
kostyara
kos

Зарегистрирован:
2011-04-26
Сообщений: 29

Цитата:
только like '%,4,%' - в надежде что сотрудников не тысячи


А '4' то мы откуда взяли изначально, что бы в запрос поставить?

Ведь это в примере 4 совпало со вторым сотрудником, а ведь могут быть еще куча сотрудников с id специальности = 1 или 8, их тоже надо выводить)))
12.02.2016, 18:53
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Попробуйте:
Код:
$spec = ltrim($f_Spec,",");
$query_where = "".nc_array_to_string( (array)explode(',', $spec), array('element'=> "a.Spec LIKE(',%%ELEMENT%,')", 'divider' => ' OR ' ) )."";


$f_Spec - Ваше поле со специальностями

Stark
13.02.2016, 16:37
kostyara
kos

Зарегистрирован:
2011-04-26
Сообщений: 29

Цитата:
Попробуйте:
Код:
$spec = ltrim($f_Spec,",");
$query_where = "".nc_array_to_string( (array)explode(',', $spec), array('element'=> "a.Spec LIKE(',%%ELEMENT%,')", 'divider' => ' OR ' ) )."";


$f_Spec - Выше поле со специальностями


Игорь, премного благодарен, именно то что нужно!!! Заработало сразу, теперь попробую понять как это реализовано!!! Спасибо большое!
15.02.2016, 12:24
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

Цитата:
Попробуйте:
Код:
$spec = ltrim($f_Spec,",");
(array)explode(',', $spec)

$f_Spec - Выше поле со специальностями

это лишнее

так же доступен массив $f_ИмяПоля_id, содержащим id выбранных элементов.
198 196 2016-02-15 12:24:57 14433
Описание проекта