Страница 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
Где-то косяк. Надо дебажить.
Спасибо, я разобрался в Вашем коде. Вы мне очень помогли.)