s89 Опубліковано: 21 липня 2020 Share Опубліковано: 21 липня 2020 Нужна помощь по php, сделать выборку данных. ocstore 2.3 есть две таблицы в БД oc_zone, oc_pertners В таблице oc_pertners данные партнеров, а в oc_zone регионы Нужны выбрать всех партнеров прокрутить foreach, что бы результат был таким (партнеры разбиты по регионам): Регоин А партнер 1 партнер 2 партнер 3 ---- Регоин В Партнер 4 партнер 10 .. ---- Надіслати Поділитися на інших сайтах More sharing options...
spectre Опубліковано: 21 липня 2020 Share Опубліковано: 21 липня 2020 перебрать регионы а потом в каждом партнёров Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 21 липня 2020 Share Опубліковано: 21 липня 2020 1 hour ago, s89 said: Нужны выбрать всех партнеров прокрутить foreach, это не оптимально и медленно. Все решается одним sql-запросом вида Spoiler SELECT z.zone_id, p.name FROM oc_zone z JOIN oc_pertners p ON z.zone_id = p.zone_id GROUP BY z.zone_id; где две таблицы связаны через zone_id. Просто замените красное name на название нужного Вам поля, которое содержит наименование партнера Если будут сложности с адаптацией этого крошечного запроса, выполните в пхпмайадмине две команды: DESCRIBE oc_zone; DESCRIBE oc_pertners; и покажите здесь их результат - это поможет составить верный запрос Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 21 час назад, 100napb сказал: это не оптимально и медленно. Все решается одним sql-запросом вида Показать контент SELECT z.zone_id, p.name FROM oc_zone z JOIN oc_pertners p ON z.zone_id = p.zone_id GROUP BY z.zone_id; где две таблицы связаны через zone_id. Просто замените красное name на название нужного Вам поля, которое содержит наименование партнера Если будут сложности с адаптацией этого крошечного запроса, выполните в пхпмайадмине две команды: DESCRIBE oc_zone; DESCRIBE oc_pertners; и покажите здесь их результат - это поможет составить верный запрос В модель добавил Ваш запрос: Спойлер public function getPartnerss() { $query = $this->db->query("SELECT z.zone_id,z.name, p.pr_name,p.city, p.address, p.phone FROM " . DB_PREFIX . "zone z JOIN " . DB_PREFIX . "partners p ON z.zone_id = p.zone_id GROUP BY z.zone_id"); return $query->rows; } Контролер: Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name' => $partner['name'], 'children' => $children_data ); } Шаблон думаю нет смысла показывать... Результат такой: Прокручиваются регионы правильно, А партнеры нет. То есть партнеры одни и те же выходят для всех регионов. И количество их выходит равное количеству регионов. Результат на скрине Спойлер Наверное нужно как то контролер переделать, может и немного сам запрос? Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 1 hour ago, s89 said: Наверное нужно как то контролер переделать, может и немного сам запрос? Вопрос с подвохом: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? 23 hours ago, 100napb said: On 7/21/2020 at 3:51 PM, s89 said: Нужны выбрать всех партнеров прокрутить foreach, это не оптимально и медленно. Все решается одним sql-запросом вида Результат запроса в базу возвращает полностью готовый результат. Совершенно неудивительно, что у Вас партнеры одинаковые получаются, поскольку вместо того что бы выполнить лишь один раз простой и быстрый запрос, Вы его дергаете в цикле для каждого региона и он Вам на каждой итерации послушно снова и снова возвращает уже готовый список, который начинается с одних и тех же записей.... Вам просто надо распарсить результат $this->model_information_partners->getPartnerss(); в удобный для вывода в шаблоне массив и все. 1 Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 1 час назад, 100napb сказал: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? Смотрел, там не все что нужно.. Спойлер А в таблице oc_partners их 7 партнеров в 3-х регионах Спойлер Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 убрать группировку по z.zone_id Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 2 hours ago, s89 said: Смотрел, там не все что нужно.. Спасибо за скриншот. Действительно 1 hour ago, Blast said: убрать группировку по z.zone_id И заменить на order by z.name, p.pr_name Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Послуги Програмування, створення модулів, зміна функціональності Нужна помощь по выборке данных с БД Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
100napb Опубліковано: 21 липня 2020 Share Опубліковано: 21 липня 2020 1 hour ago, s89 said: Нужны выбрать всех партнеров прокрутить foreach, это не оптимально и медленно. Все решается одним sql-запросом вида Spoiler SELECT z.zone_id, p.name FROM oc_zone z JOIN oc_pertners p ON z.zone_id = p.zone_id GROUP BY z.zone_id; где две таблицы связаны через zone_id. Просто замените красное name на название нужного Вам поля, которое содержит наименование партнера Если будут сложности с адаптацией этого крошечного запроса, выполните в пхпмайадмине две команды: DESCRIBE oc_zone; DESCRIBE oc_pertners; и покажите здесь их результат - это поможет составить верный запрос Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 21 час назад, 100napb сказал: это не оптимально и медленно. Все решается одним sql-запросом вида Показать контент SELECT z.zone_id, p.name FROM oc_zone z JOIN oc_pertners p ON z.zone_id = p.zone_id GROUP BY z.zone_id; где две таблицы связаны через zone_id. Просто замените красное name на название нужного Вам поля, которое содержит наименование партнера Если будут сложности с адаптацией этого крошечного запроса, выполните в пхпмайадмине две команды: DESCRIBE oc_zone; DESCRIBE oc_pertners; и покажите здесь их результат - это поможет составить верный запрос В модель добавил Ваш запрос: Спойлер public function getPartnerss() { $query = $this->db->query("SELECT z.zone_id,z.name, p.pr_name,p.city, p.address, p.phone FROM " . DB_PREFIX . "zone z JOIN " . DB_PREFIX . "partners p ON z.zone_id = p.zone_id GROUP BY z.zone_id"); return $query->rows; } Контролер: Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name' => $partner['name'], 'children' => $children_data ); } Шаблон думаю нет смысла показывать... Результат такой: Прокручиваются регионы правильно, А партнеры нет. То есть партнеры одни и те же выходят для всех регионов. И количество их выходит равное количеству регионов. Результат на скрине Спойлер Наверное нужно как то контролер переделать, может и немного сам запрос? Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 1 hour ago, s89 said: Наверное нужно как то контролер переделать, может и немного сам запрос? Вопрос с подвохом: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? 23 hours ago, 100napb said: On 7/21/2020 at 3:51 PM, s89 said: Нужны выбрать всех партнеров прокрутить foreach, это не оптимально и медленно. Все решается одним sql-запросом вида Результат запроса в базу возвращает полностью готовый результат. Совершенно неудивительно, что у Вас партнеры одинаковые получаются, поскольку вместо того что бы выполнить лишь один раз простой и быстрый запрос, Вы его дергаете в цикле для каждого региона и он Вам на каждой итерации послушно снова и снова возвращает уже готовый список, который начинается с одних и тех же записей.... Вам просто надо распарсить результат $this->model_information_partners->getPartnerss(); в удобный для вывода в шаблоне массив и все. 1 Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 1 час назад, 100napb сказал: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? Смотрел, там не все что нужно.. Спойлер А в таблице oc_partners их 7 партнеров в 3-х регионах Спойлер Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 убрать группировку по z.zone_id Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 2 hours ago, s89 said: Смотрел, там не все что нужно.. Спасибо за скриншот. Действительно 1 hour ago, Blast said: убрать группировку по z.zone_id И заменить на order by z.name, p.pr_name Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Послуги Програмування, створення модулів, зміна функціональності Нужна помощь по выборке данных с БД Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 21 час назад, 100napb сказал: это не оптимально и медленно. Все решается одним sql-запросом вида Показать контент SELECT z.zone_id, p.name FROM oc_zone z JOIN oc_pertners p ON z.zone_id = p.zone_id GROUP BY z.zone_id; где две таблицы связаны через zone_id. Просто замените красное name на название нужного Вам поля, которое содержит наименование партнера Если будут сложности с адаптацией этого крошечного запроса, выполните в пхпмайадмине две команды: DESCRIBE oc_zone; DESCRIBE oc_pertners; и покажите здесь их результат - это поможет составить верный запрос В модель добавил Ваш запрос: Спойлер public function getPartnerss() { $query = $this->db->query("SELECT z.zone_id,z.name, p.pr_name,p.city, p.address, p.phone FROM " . DB_PREFIX . "zone z JOIN " . DB_PREFIX . "partners p ON z.zone_id = p.zone_id GROUP BY z.zone_id"); return $query->rows; } Контролер: Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name' => $partner['name'], 'children' => $children_data ); } Шаблон думаю нет смысла показывать... Результат такой: Прокручиваются регионы правильно, А партнеры нет. То есть партнеры одни и те же выходят для всех регионов. И количество их выходит равное количеству регионов. Результат на скрине Спойлер Наверное нужно как то контролер переделать, может и немного сам запрос? Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options...
100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 1 hour ago, s89 said: Наверное нужно как то контролер переделать, может и немного сам запрос? Вопрос с подвохом: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? 23 hours ago, 100napb said: On 7/21/2020 at 3:51 PM, s89 said: Нужны выбрать всех партнеров прокрутить foreach, это не оптимально и медленно. Все решается одним sql-запросом вида Результат запроса в базу возвращает полностью готовый результат. Совершенно неудивительно, что у Вас партнеры одинаковые получаются, поскольку вместо того что бы выполнить лишь один раз простой и быстрый запрос, Вы его дергаете в цикле для каждого региона и он Вам на каждой итерации послушно снова и снова возвращает уже готовый список, который начинается с одних и тех же записей.... Вам просто надо распарсить результат $this->model_information_partners->getPartnerss(); в удобный для вывода в шаблоне массив и все. 1 Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 1 час назад, 100napb сказал: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? Смотрел, там не все что нужно.. Спойлер А в таблице oc_partners их 7 партнеров в 3-х регионах Спойлер Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 убрать группировку по z.zone_id Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 2 hours ago, s89 said: Смотрел, там не все что нужно.. Спасибо за скриншот. Действительно 1 hour ago, Blast said: убрать группировку по z.zone_id И заменить на order by z.name, p.pr_name Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Послуги Програмування, створення модулів, зміна функціональності Нужна помощь по выборке данных с БД Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 1 час назад, 100napb сказал: а Вы смотрели результат выполнения sql-запроса в том же phpmyadmin'e, прежде чем выстраивать логику в контроллере основанную на вложенных циклах? Смотрел, там не все что нужно.. Спойлер А в таблице oc_partners их 7 партнеров в 3-х регионах Спойлер Надіслати Поділитися на інших сайтах More sharing options...
Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 убрать группировку по z.zone_id Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 2 hours ago, s89 said: Смотрел, там не все что нужно.. Спасибо за скриншот. Действительно 1 hour ago, Blast said: убрать группировку по z.zone_id И заменить на order by z.name, p.pr_name Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Послуги Програмування, створення модулів, зміна функціональності Нужна помощь по выборке данных с БД Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
100napb Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 2 hours ago, s89 said: Смотрел, там не все что нужно.. Спасибо за скриншот. Действительно 1 hour ago, Blast said: убрать группировку по z.zone_id И заменить на order by z.name, p.pr_name Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Послуги Програмування, створення модулів, зміна функціональності Нужна помощь по выборке данных с БД
s89 Опубліковано: 22 липня 2020 Автор Share Опубліковано: 22 липня 2020 (змінено) 3 часа назад, 100napb сказал: Спасибо за скриншот. Действительно И заменить на order by z.name, p.pr_name Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Спойлер тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Спойлер <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Спойлер Змінено 22 липня 2020 користувачем s89 Надіслати Поділитися на інших сайтах More sharing options...
Blast Опубліковано: 22 липня 2020 Share Опубліковано: 22 липня 2020 27 минут назад, s89 сказал: Первое что хотел бы сказать, спасибо БОЛЬШОЕ что помогаете решить вопрос. Но пока что не выходит, вероятно что я неправильно прокручиваю через foreach Вот что выходит по запросу Показать контент тут немного меньше данных чем то что я получаю в контролере, для скрина убрал контактные данные... контролер Показать контент $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $data['partners'][] = array( 'name_region' => $partner['name'], 'name_partner' => $partner['pr_name'], 'contacts' => $partner['city'], $partner['address'], $partner['phone'] ); } Шаблон Показать контент <?php foreach ($partners as $partner) { ?> <div class="well_box" style="margin-bottom:20px;"> <div class="headers"><?php echo $partner['name_region']; ?></div> <div class="box_part"> <div class="partner_box"> <div class="name_parnter"> <?php echo $partner['name_partner']; ?> </div> <div class="address_parnter"> <?php echo $partner['contacts']; ?> </div> </div> </div> </div> <?php } ?> И вот результат: Показать контент нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Надіслати Поділитися на інших сайтах More sharing options... s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
s89 Опубліковано: 23 липня 2020 Автор Share Опубліковано: 23 липня 2020 11 часов назад, Blast сказал: нужен вложенный массив партнеров, собственно как у вас в первом сообщении. Примерно может выглядеть так 'region' => 'Днепропетровская область', 'region_partners' => array( 0 => array('name' => 'Партнер1', 'contacts' => 'адрес1'), 1 => array('name' => 'Партнер2', 'contacts' => 'адрес2'), ), Сделал так Спойлер $data['partners'] = array(); $partners = $this->model_information_partners->getPartnerss(); foreach ($partners as $partner) { $children_data = array(); $children = $this->model_information_partners->getPartnerss(); foreach ($children as $child) { $children_data[] = array( 'name_partner' => $child['pr_name'], 'contacts' => $child['city'], $child['address'], $child['phone'] ); } $data['partners'][] = array( 'name_region' => $partner['name'], 'children' => $children_data ); } Но что то так..)) Спойлер Регионы повторно крутятся, а партнеры для всех регионов одни и те же.. Надіслати Поділитися на інших сайтах More sharing options...
Blast Опубліковано: 23 липня 2020 Share Опубліковано: 23 липня 2020 с чего вы взяли, что повторный вызов $this->model_information_partners->getPartnerss(); даст вам "дочерние" элементы? в первом запросе вам вернутся все данные сразу. запускайте foreach по ним и раскидывайте данные в нужном формате Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2
Recommended Posts