SQL запрос
Есть ресурс 5 ресурсов и все они имеют свой уникальный шаблон и пару TV.
catalogs и price это TV
Кто знает, можно ли одним SQL-запросом извлечь список этих ресурсов с TV-полями.
По итогу нужно будет получить вот такой json
catalogs и price это TV
Кто знает, можно ли одним SQL-запросом извлечь список этих ресурсов с TV-полями.
По итогу нужно будет получить вот такой json
{
"id": 1,
"pagetitle": "Название №1",
"catalogs": "Дымоходы для печей",
"price": "100"
},
{
"id": 2,
"pagetitle": "Название №2",
"catalogs": "Дымоходы для печей",
"price": "100"
},
{
"id": 3,
"pagetitle": "Название №3",
"catalogs": "Дымоходы для печей",
"price": "100"
},
{
"id": 4,
"pagetitle": "Название №4",
"catalogs": "Дымоходы для печей",
"price": "100"
},
{
"id": 5,
"pagetitle": "Название №5",
"catalogs": "Дымоходы для печей",
"price": "100"
}
Поблагодарить автора
Отправить деньги
Комментарии: 10
Нельзя, т.к. каждое TV это минимум одно запись в таблице modx_site_tmplvar_contentvalues, а тебе нужно на каждый ресурс 2 записи достать.В общем, я бы достал отдельно ресурс, отдельно TV, а потом собрал из этого нужного формата массив.
Я вот не знаю верно ли я копаю но я смог 1 запросом двое данных получить.
SELECT tmplvarid, value, contentid AS id FROM modx_site_tmplvar_contentvalues WHERE tmplvarid = 20 AND contentid = 3839 UNION SELECT tmplvarid, value, contentid AS id FROM modx_site_tmplvar_contentvalues WHERE tmplvarid = 133 AND contentid = 3839;
Я думаю голым SQL ты данные в нужном формате не получишь или потратишь очень много времени на написание такого запроса. Я бы вот таким запросом доставал данные
SELECT TV.tmplvarid, TV.value, Resource.pagetitle FROM modx_site_tmplvar_contentvalues TV
LEFT JOIN modx_site_content Resource
ON TV.contentid = Resource.id
WHERE TV.tmplvarid IN (13,14) AND TV.contentid = 92
А результат в цикле переформатировал бы в нужный мне вид.
Спасибо за совет. Уже написал код который одним запросом собирает все.
Вот что получаю:
Вот что получаю:
[
{
"id": "ID ресурса",
"pagetitle": "Название товара",
"product_article": "TV артикул",
"product_id": "TV айди товара",
"parent_pagetitle": "Название каталога где лежит товар",
"price": "TV цена товара",
"published": "1", - ну и так понятно.
"url": "https://site.com/?a=resource/update&id=ID ресурса" - ссылка для менеджеров чтобы перейти в товар
}
]
Покажи запрос-то?))
Можно 1 запросом. но нужно джойнить и писать либо на sql либо через xpdo.
Вопрос зачем? ведь, данные такие можно спокойно достать pdoResources, особенно если это 5 товаров… и он умеет в json сразу.
Вопрос зачем? ведь, данные такие можно спокойно достать pdoResources, особенно если это 5 товаров… и он умеет в json сразу.
Технически да. Но мне бы как то самому сделать запрос для получения этих данных.
Можете подсказать как в json добавить название родительской категории с поля parent. Бо выводит только ID.
Сделать join родительских ресурсов.
select modResource.id, modResource.pagetitle, Parent.pagetitle as catalogs
from modx_site_content as modResource
join modx_site_content as Parent on modResource.parent = Parent.id
Вот здесь отличный пример через xpdo с джоинами полей TV.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.