Л А Б О Р А Т О Р И Я

актуальных

РЕШЕНИЙ


PHP groupe from PostgreSQL - TEST

решение тестовой задачи на PHP, база данных PostgreSQL

Получил по запросу от одной компании тестовую задачу, чтобы прокачать свои текущие навыки, и понять уровень требований на рынке по моей специализации.

Описание задачи:

Задание БД PostgreSQL

Последовательность реализации:

  1. Необходимо создать в БД PostgreSQL три таблицы заданной в ТЗ структуры, расширив количество ввведенных данных для более удобного тестирования.
  2. Формат вывода итоговых данных не сильно беспокоит заказчика, поэтому вывод будет осуществлен тривиально, используя самые простые операторы PHP: var_dump() и print_r().
  3. Обработка запросов к БД будет осуществляться через класс, который находится в файле DbClass.php и подключается к скрипту (см. строка 2 скрипт PHP). Код класса не приводится здесь целиком, показаны только два метода с запросами к БД (см. Код запросов к базе данных - PDO).
  4. Первый запрос, вызывается из скрипта РНР (см. строка 5 скрипт PHP) и позволяет получить ассоциативный массив данных, в котором каждому ключу - номеру телефону, будет поставлено в соответствие значение - строка со списком ID всех зданий, где имеется номер такого телефона.
  5. В скрипте РНР обрабатываем полученный массив и убираем те позиции, в значениях которых присутствует только BuildID одного здания (см. строка 9 скрипт PHP). Остальные данные записываем в новый массив со следующей трансформацией (см. строка 11 скрипт PHP): каждому ключу - набору BuildID (строка с перечислением через запятую), добавляем в массив значений номер телефона.
  6. Выводим общий полученный сгруппированный массив на страницу браузера (см. строка 15 скрипт PHP).
  7. В следующем цикле скрипта РНР проходимся по всем элементам полученного массива с целью отправки запросов к базе данных и получения названий адресов зданий по их BuildID (см. строка 22 скрипт PHP).
  8. Второй метод класса, находящегося в файле DbClass.php (см. функцию getBuildName Код запросов к базе данных - PDO), позволяет нам получить все адреса по ID из строки с перечнем BuildID.
  9. Выводим на странице все адреса группы (см. строка 25 скрипт PHP) и номера телефонов (см. строка 27 скрипт PHP), общие для каждого адреса в группе. Номер группы устанавливаем последовательно (см. строка 30 скрипт PHP).

Таблицы базы данных:

DB Tables

Файл скрипта PHP:

Text PHP

Код запросов к базе данных - PDO:

Text PHP SQL

Итоговая реализация - вывод на страницу браузера после запуска скрипта:

page result

Удачи в разработке!



другие материалы: