Как правильно оформить запрос к базе данных?

291
11 июля 2017, 22:28

Прошу совета как правильно обратиться к базе в чем суть. Разрабатываю расширение вот собственно. Меню хранится в json формате вот сама строка json

{
    "menus": {
        "menu0": {
            "title": "Распродажа",
            "model": "\\common\\models\\Category",
            "alias": "Rasprodazha",
            "depth": 0,
            "path": "/gods/gods/category",
            "classItem": false,
            "idInput": false
        },
        "menu1": {
            "menuItem": 215,
            "depth": 0,
            "item": "1",
            "text": "Для нее",
            "classItem": false,
            "idInput": false,
            "aliasInput": false
        },
        "menu2": {
            "menuItem": 217,
            "depth": 0,
            "item": "2",
            "text": "Для дома",
            "classItem": false,
            "idInput": false,
            "aliasInput": false
        }
    }
}

Собственно в чем вопрос вот здесь в моделе Menu в методе renderMenu пытаюсь сформировать меню исходя из выше приведенного кода вот эта строка "menuItem": 217, означает вывести меню с id - 21. к примеру вот такое

 {
        "menus": {
            "menu0": {
                "title": "Бижутерия",
                "model": "\\common\\models\\Category",
                "alias": "Bizuteria",
                "depth": 0,
                "path": "/gods/gods/category",
                "classItem": false,
                "idInput": false
            },
        "extra-2": {
            "munu0": {
                "title": "Акция блузы по - 20%",
                "model": "\\common\\models\\Category",
                "alias": "Akciyabluzypo-20%",
                "depth": 0,
                "path": "/gods/gods/category",
                "classItem": false,
                "idInput": false,
                "imgPath": "http://magaz.lc/frontend/web/image/menu/2017/06",
                "imgName": "logo.png"
            }
        }
    }

Что мне не нравится в строке 61 класса (модели) Menu в методе renderMenu я запускаю цикл foreache потом обращаюсь к методу Menu где запрашиваю информацию из базы данных о прикрепленном меню. Хотя я понимаю что таких запросов будет не много но все же для особо нежных натур, да и вообще что бы избежать любое пованивание кода хотелось бы это исправить и заменить на запрос к базе вне цикла. Может есть советы как это можно реализовать?

READ ALSO
Не получается проверить есть ли элемент в $_SESSION [требует правки]

Не получается проверить есть ли элемент в $_SESSION [требует правки]

Код выше никогда не проверяет есть ли уже такой товар в массивеВ итоге в корзину добавляются дубликаты

222
Вопрос про вычет времени

Вопрос про вычет времени

Как написать условие если время1 - время2 > 30 минут делай то-то?

344
MYSQL REGEXP PHP [требует правки]

MYSQL REGEXP PHP [требует правки]

Собсна вопрос, почему в phpmyadmin запрос работает, а там же в консоли не работает?

214