Всем привет! Вывожу список категорий и хочу рядом с каждой категорией вывести количество записей. Но с учетом того, что в категории могут быть подкатегории... Поэтому выводить количество нужно с учетом тех записей, которые находятся в подкатегорииях.
В БД вместе с записью хранится id категории в которой она находится непосредственно, и также дерево категорий в котором она находится.
Для примера можно глянуть вывод категорий на авито:
https://www.avito.ru/rossiya/transport
Так вот, у меня получается вот такой запрос к БД
$cat_path - дерево катгорий в котором находимся сейчас
$last_category - категория, для которой ищем дочерние категории
SELECT sc.`name`, sc.`basename`, (SELECT count(`id`) cnt FROM `sale_ads` WHERE `path` LIKE '{$cat_path}%') cnt
FROM `sale_category` sc
WHERE sc.`parent_id` = '{$last_category}'
ORDER BY sc.`order_sort` ASC
Проблема возникает на этом участке:
LIKE '{$cat_path}%'
Количество выводится для текущей категории, а не для каждой дочерней. Поэтому нужно подставить сюда значение текущей категории в выборке, как-то так LIKE '{$cat_path},
sc.`id`%'
Но такая запись не работает.
Как подставить это значение правильно? Или может посоветуйте более правильную логику подсчета записей...