Л А Б О Р А Т О Р И Я

актуальных

РЕШЕНИЙ


Каталог с подгрузкой данных из БД SQLite

решение тестовой задачи

В одной из компаний, в которой шел подбор программистов PHP, было получено тестовое задание по AJAX загрузке с использованием SQLite.

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

Сверстать каталог товаров по предоставленному дизайну используя HTML5, CSS3, JS, PHP7. Для хранения информации используйте SQLite, таблицы: категории, позиции, цена на дату, картинки, свойства позиции.

Обновление/подгрузка данных отдельным вызовом JS.

Образец - картинка отображаемой страницы, которая прилагалась к заданию:

Text TEST

Цель задачи понятна, снизить возмозможность автоматического парсинга данных со страниц открытого доступа.

Для решения задачи были созданы соответствующие таблицы в БД SQLite и наполнены произвольными данными приближенными к указанным на картинке - образце.

Структура таблиц базы данных:

БД SQLite

Осмысление задачи привело к следующим выводам:

  1. На страницу изначально должен загружаться макет, который потом будет наполняться данными, подгружаемыми через отдельный запрос JS;
  2. В макете будут присутствовать блоки групп (категорий), которые будут наполнены блоками продуктов/товаров;
  3. Количество категорий можно получить из таблицы категории, либо из таблицы позиции (SKU);
  4. Количество блоков товаров в каждой категории можно получить из таблицы позиций (SKU);
  5. Получение данных по блокам категорий и количеству в каждом из них блоков товаров можно сформировать одним запросом к таблице SKU базы данных;
  6. Подгрузка данных запросом JS может осуществляться одним запросом при связывании таблиц базы данных через id;
  7. Связать данные макета на странице и подгружаемых запросом JS данных можно через id категорий, которые надо установить на странице при загрузке макета.

Основная страница, которая выводит макет:

view catalog

Файл скрипта с классом для обработки запросов к базе данных:

view catalog

Файл JS для обработки запроса к данным и загрузки их в макет на странице:

view catalog

Вот такая итоговая реализация получилась:

view catalog

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



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