Музыка (20)
Фильмы (10)
Сериалы (50)
Сам я делаю так:
Получаю список категории в массив $cats и внутри цикла foreach выполняю SQL запрос для выбора записей у которых cat_id = $cat['id']
Всё получается но думаю это не оптимальный вариант, так как в отладке вижу что выполняются много SQL запросов.
Может есть более простое решение?
Данный запрос работает для выбора например из cms_con_articles
Как мне сделать выборку из таблицы cms_con_articles_cats и при этом считать количество записей этой категории из таблицы cms_con_articles по category_id
Извиняюсь если вопросы очень тупые) я не силен в SQL
SELECT cc.id, cc.title, COUNT(cm.id) AS comments FROM cms_content cc LEFT JOIN cms_comments cm ON cm.target_id = cc.id AND cm.target = 'article' GROUP BY cc.id ORDER BY cc.title
Нужно джоинить таблицу "..cats_bind", но это будет только для последнего уровня вложения
joinLeft('con_{ctype}_cats_bind', 'c', 'c.category_id = i.id'); select('COUNT(item_id)', 'count'); groupBy('id');
if($cat_id && $cat_id != 1){ $model->table_prefix = ''; $cat = $model->getItemById('board_cats', $cat_id); $model->filterCategory('board', $cat, true); } $items = $model->getCount('board');
Посмотрите функцию filterCategory думаю вам поможет
Вадим Нарочный, Вот как я сделал для одного проекта
мне нужна была количество записей категории + подкатегории...
if($cat_id && $cat_id != 1){ $model->table_prefix = ''; $cat = $model->getItemById('board_cats', $cat_id); $model->filterCategory('board', $cat, true); } $items = $model->getCount('board');
Посмотрите функцию filterCategory думаю вам поможет
Мне нужно вывести количество записей в дереве категорий, а не на странице!