Страница 1 из 1

Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 25 май 2023, 19:37
SalahievFR
Есть записи в сущности, в каждой записи есть назначенные пользователи. Какой тип поля создать и каким запросом или кодом подтянуть в одно поле номера телефонов всех назначенных пользователей?
Поле Контакты: 89999…,8999…, и т.д.

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 25 май 2023, 21:24
tehnos
Родил вот такую конструкцию. Написано в блокноте, работоспособность надо проверять :)

// field_819 - поле с назначенными пользователями
// field_820 - целевое поле с номерами телефонов
// app_entity_69 - сущность с целевыми записями
// field_1087 - поле с номером телефона пользователя
// app_entity_1 - сущность "Пользователи"

Поле "PHP код":

Код: Выделить всё

$users_query = db_query("SELECT `field_819` FROM `app_entity_69` WHERE `id` = [id]"); // запрос списка назначенных пользователей из текущей записи
$users_row = mysqli_fetch_assoc($users_query);
$users_arr = explode(',', $users_row['field_819']); // разбор строки и упаковка в массив
$tel_arr = array(); 
foreach($users_arr as $user_id) { // перебор массива с пользователями и упаковка в массив номеров телефонов
	$tel_query = db_query("SELECT `field_1087` FROM `app_entity_1` WHERE `id` = {$user_id}");
	$tel_row = mysqli_fetch_assoc($tel_query);
	$tel_arr[] = $tel_row['field_1087'];
}
$tel_numbers = implode(',', $tel_arr); // сборка строки с номерами телефонов из массива
db_query("UPDATE `app_entity_69` SET `field_820` = {$tel_numbers} WHERE `id` = [id]"); // запись строки с номерами в поле текущей записи

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 25 май 2023, 21:58
SalahievFR
tehnos писал(а): 25 май 2023, 21:24 Родил вот такую конструкцию. Написано в блокноте, работоспособность надо проверять :)

// field_819 - поле с назначенными пользователями
// field_820 - целевое поле с номерами телефонов
// app_entity_69 - сущность с целевыми записями
// field_1087 - поле с номером телефона пользователя
// app_entity_1 - сущность "Пользователи"

Поле "PHP код":

Код: Выделить всё

$users_query = db_query("SELECT `field_819` FROM `app_entity_69` WHERE `id` = [id]"); // запрос списка назначенных пользователей из текущей записи
$users_row = mysqli_fetch_assoc($users_query);
$users_arr = explode(',', $users_row['field_819']); // разбор строки и упаковка в массив
$tel_arr = array(); 
foreach($users_arr as $user_id) { // перебор массива с пользователями и упаковка в массив номеров телефонов
	$tel_query = db_query("SELECT `field_1087` FROM `app_entity_1` WHERE `id` = {$user_id}");
	$tel_row = mysqli_fetch_assoc($tel_query);
	$tel_arr[] = $tel_row['field_1087'];
}
$tel_numbers = implode(',', $tel_arr); // сборка строки с номерами телефонов из массива
db_query("UPDATE `app_entity_69` SET `field_820` = {$tel_numbers} WHERE `id` = [id]"); // запись строки с номерами в поле текущей записи
Спасибо, буду проверять. По результату отпишусь)

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 25 май 2023, 22:32
Oleg
А для чего? Какой бизнес процесс?

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 26 май 2023, 18:32
SalahievFR
tehnos писал(а): 25 май 2023, 21:24 Родил вот такую конструкцию. Написано в блокноте, работоспособность надо проверять :)

// field_819 - поле с назначенными пользователями
// field_820 - целевое поле с номерами телефонов
// app_entity_69 - сущность с целевыми записями
// field_1087 - поле с номером телефона пользователя
// app_entity_1 - сущность "Пользователи"

Поле "PHP код":

Код: Выделить всё

$users_query = db_query("SELECT `field_819` FROM `app_entity_69` WHERE `id` = [id]"); // запрос списка назначенных пользователей из текущей записи
$users_row = mysqli_fetch_assoc($users_query);
$users_arr = explode(',', $users_row['field_819']); // разбор строки и упаковка в массив
$tel_arr = array(); 
foreach($users_arr as $user_id) { // перебор массива с пользователями и упаковка в массив номеров телефонов
	$tel_query = db_query("SELECT `field_1087` FROM `app_entity_1` WHERE `id` = {$user_id}");
	$tel_row = mysqli_fetch_assoc($tel_query);
	$tel_arr[] = $tel_row['field_1087'];
}
$tel_numbers = implode(',', $tel_arr); // сборка строки с номерами телефонов из массива
db_query("UPDATE `app_entity_69` SET `field_820` = {$tel_numbers} WHERE `id` = [id]"); // запись строки с номерами в поле текущей записи
Вроде все сделал правильно по вашей инструкции пустое поле выходит.

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 26 май 2023, 18:35
SalahievFR
Oleg писал(а): 25 май 2023, 22:32 А для чего? Какой бизнес процесс?
На самом деле телефон мне не нужен. Я создам поле ЧАТ ИД в сущности пользователи. А потом в другой сущности хочу собрать эти чат ид пользователей, которые назначены в данной записи. Дальше через php отправлю уведомление пользователям в телеграм(готовый код уже есть).

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 26 май 2023, 18:36
tehnos
Где-то косяк. Надо дебажить.

Re: Как получить телефоны назначенных пользователей, если их несколько?

Добавлено: 26 май 2023, 19:24
SalahievFR
tehnos писал(а): 26 май 2023, 18:36 Где-то косяк. Надо дебажить.
Спасибо, я разобрался в Вашем коде. Вы мне очень помогли.)