В продолжение темы viewtopic.php?f=2&t=4689 - появилась необходимость "обратного" действия. Т.е. нужно извлечь из родительской сущности поля Пользователи (со множественным выбором) определенное значение (конкретного Пользователя) - которое мы удаляем/снимаем во вложенной сущности в поле Пользователи со множественным выбором.
Пример:
Заявки (есть Пользователи со множественным выбором 4502)
- Транспортные Средства (ТС) (есть поле Пользователи со множественным выбором 4187).
В 4502, например, есть такой список пользователей (ИД)
Код: Выделить всё
8,9,10,11,12,13Код: Выделить всё
8,9,10,12Я в форме редактирования в ТС - убираю в поле 4187, например, пользователя с ИД 8. После сохранения должен быть такой результат:
В поле 4502 сущности Заявки
Код: Выделить всё
9,10,11,12,13Код: Выделить всё
9,10,12Как это можно сделать? Есть ли решение через php/mysql ?
В указанном выше топике (действие с добавлением/присоединением множества значений к другому множеству) решение было выполнено при помощи такого кода
Код: Выделить всё
$manager_query = db_query("select field_4198 from app_entity_68 where id='" . [4072] . "'"); //запрос к подключенной сущности в 4198 - Пользователи BTG, 4072 - поле Сущность в текущей сущности.
$current_manager = [4764]; // Берем значение из поля текущей сущности Пользователи BTG
if (empty($current_manager)) {
if($manager = db_fetch_array($manager_query))
{
$value1 = $manager['field_4198']; // Берем значение из запроса
if (!empty($value1)) { //Проверяем чтобы поле из подключенной сущности не было пустым
$current_manager = db_query("update app_entity_122 set field_4764 = '$value1' where id='" . [id] . "'"); //обновляем текущую сущность по полю 4764 Пользователи
//////////////////// Добавляем (прсоединяем недостающих) пользователей ТК в род.сущность Заявки во множественное поле Пользователи.
$manager_order_query = db_query("select field_4206 from app_entity_27 where id='" . [4768] . "'"); // запрос к род.сущности Заявки в 4206 - Пользователи, 4768 - ID заявки MySQL формула
if($manager_order = db_fetch_array($manager_order_query))
{
$value22 = $manager_order['field_4206'];
if (!empty($value22)) {
$value2 = implode(',',array_unique(explode(',',($value22 . ',' . $value1))));
$manager_order_query = db_query("update app_entity_27 set field_4206 = '$value2' where id='" . [4768] . "'");
}
else {
$manager_order_query = db_query("update app_entity_27 set field_4206 = '$value1' where id='" . [4768] . "'");
}
}
////////////////////////////////
}
else return false;
}
}
else {
//////////////////// Добавляем (прсоединяем недостающих) пользователей ТК в род.сущность Заявки во множественное поле Пользователи.
$manager_order_query = db_query("select field_4206 from app_entity_27 where id='" . [4768] . "'"); // запрос к род.сущности Заявки в 4206 - Пользователи, 4768 - ID заявки MySQL формула
if($manager_order = db_fetch_array($manager_order_query))
{
$value22 = $manager_order['field_4206'];
if (!empty($value22)) {
$value2 = implode(',',array_unique(explode(',',($value22 . ',' . $current_manager))));
$manager_order_query = db_query("update app_entity_27 set field_4206 = '$value2' where id='" . [4768] . "'");
}
else {
$manager_order_query = db_query("update app_entity_27 set field_4206 = '$current_manager' where id='" . [4768] . "'");
}
}
////////////////////////////////
return false;
}Код: Выделить всё
$value2 = implode(',',array_unique(explode(',',($value22 . ',' . $current_manager))));Ну и доп. вопрос, наверное, смежный и решение его будет аналогичным - если я убираю пользователя из родительской сущности Заявки, то чтобы только он "исчез" со всех вложенных записей ТС к этой записи заявки.
Есть ли какие-то варианты? Больше конечно хотелось бы решение на php/mysql
