вопрос
Подскажите, как вывести количество новостей из категории в которой есть несколько подкатегорий?
Моя ситуация следующая: есть категория c ID 2 и в ней ещё 8 подкатегорий. Для вывода общего количества новостей из категории ID 2 я написал следующий код:
Он работает, НО, если новость находится на модерации то она тоже засчитывается. Как этого избежать?
И второй вопрос- как помимо общего количества, вывести ещё количество новостей в каждой подкатегории?
Моя ситуация следующая: есть категория 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']);}
?>
Он работает, НО, если новость находится на модерации то она тоже засчитывается. Как этого избежать?
И второй вопрос- как помимо общего количества, вывести ещё количество новостей в каждой подкатегории?
Первая часть вопроса.
В условие where нужно добавить параметр approve.
А вот по второму - для каждой категории нужно делать свой запрос с подсчетом.
Если каждая новость отмечена только в одной категории и так будет и далее, то:
Теперь в переменной $cat_cont мы имеем массив с данными по количеству новостей в каждой категории.
В условие 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 мы имеем массив с данными по количеству новостей в каждой категории.