Не нравятся результаты поиска? Попробуйте другой поиск!

Вывод количества новостей из категории и подкатегорий


     12.08.2011    Общие вопросы    4683

вопрос
Подскажите, как вывести количество новостей из категории в которой есть несколько подкатегорий?
Моя ситуация следующая: есть категория c ID 2 и в ней ещё 8 подкатегорий. Для вывода общего количества новостей из категории ID 2 я написал следующий код:
<?php 
$sql_result = $db->query("select count(*) as nums from ". PREFIX ."_post ps where ps.category in(4,5,6,7,8,9,10,11)");
while($row = $db->get_row($sql_result))
{echo($row['nums']);}
?>

Он работает, НО, если новость находится на модерации то она тоже засчитывается. Как этого избежать?
И второй вопрос- как помимо общего количества, вывести ещё количество новостей в каждой подкатегории?

Ответил: Sander


Первая часть вопроса.
В условие where нужно добавить параметр approve.
$sql_result = $db->query("select count(*) as nums from ". PREFIX ."_post where approve AND category in(4,5,6,7,8,9,10,11)");

А вот по второму - для каждой категории нужно делать свой запрос с подсчетом.
Если каждая новость отмечена только в одной категории и так будет и далее, то:
$csql = $db->query("SELECT count(*) as n, category FROM ".PREFIX."_post WHERE approve GROUP BY category");
$cat_count = array();
while($r = $db->get_row($csql)) $cat_count[$r['category']] = $r['n'];

Теперь в переменной $cat_cont мы имеем массив с данными по количеству новостей в каждой категории.

Комментарии пользователей (4)

Sander
1126

1637 | 1204

Sander - 12 августа 2011 11:48 - Эксперт

И еще...
Не плохо бы все это дело кешировать.

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

Mek
14 | 14

Mek - 12 августа 2011 12:19 - Юзер

По первому вопросу всё ок- большое спасибо!

По второму- Получается что для каждой подкатегории нужно делать отдельный запрос+ 1 запрос для самой категории? Можно ли сделать это одним запросом?

Как сделать кеш?

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 12 августа 2011 12:28 - Админ

У Sander`a есть в продаже отличный хак для правильного подсчёта новостей в категориях - рекомендую smile

Каков вопрос - таков и ответ. Просто помните об этом.

vitnet
218

2172 | 930

vitnet - 14 февраля 2013 03:51 - Эксперт

Приобрел, теперь доволен как слон.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы