Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Подсчет статей в категориях http://forum.kohanaframework.su/viewtopic.php?f=33&t=97 |
Страница 1 из 2 |
Автор: | Malik [ 27 мар 2012, 15:09 ] |
Заголовок сообщения: | Подсчет статей в категориях |
Доброго времени суток =) Имеется контроллер: Код:
Модель Category: Код:
Таблица category: Код:
Вид v_main: Код:
Таблица article: Код:
Подскажите как сделать подсчет статей в категориях? |
Автор: | admin [ 28 мар 2012, 02:29 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
Я лично в подобных случаях добавлял в таблицу категорий поле "Количество статей".Соответственно при добавлении статьи идет инкремент в это поле, а при удалении -декремент. Но это мне надо было на одной странице знать количество статей во всех категориях. Если такое не требуется, то можно стандартно, через count. |
Автор: | Malik [ 28 мар 2012, 02:43 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
admin писал(а): Я лично в подобных случаях добавлял в таблицу категорий поле "Количество статей".Соответственно при добавлении статьи идет инкремент в это поле, а при удалении -декремент. Но это мне надо было на одной странице знать количество статей во всех категориях. Если такое не требуется, то можно стандартно, через count. Можете показать пример как это реализовать через count? А то как ни пытался - не получается. |
Автор: | admin [ 28 мар 2012, 16:22 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
Ну вот для комментариев, например, я пишу так: Код:
если необходимо исключить повторяющиеся значения при подсчете, можно использовать DISTINCT, хотя тут ненадо, но мало ли понадобится ) Что-то вроде Код:
Обычно требуется, когда вы объединяете таблицы, используя JOIN. |
Автор: | Malik [ 28 мар 2012, 16:40 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
Модель у меня подобным образом и реализована, но вот не могу понять как передать $id_article в контроллере |
Автор: | admin [ 28 мар 2012, 17:07 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
Хм. А в чем проблема-то ? Ну допустим Код:
А сам $article_id - это ид статьи, его мы получаем обычно из адреса. Код:
Это пример для подсчета комментариев к статье с определенным ид. У вас надо определить ид категории, чтобы потом подсчитать статьи, которые к ней относятся (связь один ко многим). Я не знаю, как у вас все реализовано, но в адресной строке вы же наверняка что-то передаете. |
Автор: | Malik [ 28 мар 2012, 21:29 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
admin писал(а): Хм. А в чем проблема-то ? Ну допустим Код:
А сам $article_id - это ид статьи, его мы получаем обычно из адреса. Код:
Это пример для подсчета комментариев к статье с определенным ид. У вас надо определить ид категории, чтобы потом подсчитать статьи, которые к ней относятся (связь один ко многим). Я не знаю, как у вас все реализовано, но в адресной строке вы же наверняка что-то передаете. Вы не поняли. Я про то, когда выводим все категории. В этом контроллере: Код:
|
Автор: | admin [ 29 мар 2012, 02:02 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
Выводятся все категории и нужно посчитать, сколько в каждой статей ? Тогда проще, как я говорил, сделать поле в категориях - Количество статей. Потому что для каждой вызывать запрос нерентабельно. |
Автор: | Malik [ 29 мар 2012, 02:28 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
admin писал(а): Выводятся все категории и нужно посчитать, сколько в каждой статей ? Тогда проще, как я говорил, сделать поле в категориях - Количество статей. Потому что для каждой вызывать запрос нерентабельно. Ну а все же как реализовать с вызыванием запросов на подсчет? P.S. Для личного развития Например: для подсчета новых статей, в таблице со статьями имеется поле времени добавления. |
Автор: | admin [ 29 мар 2012, 02:34 ] |
Заголовок сообщения: | Re: Подсчет статей в категориях |
ну видимо для каждой категории вызывать Цитата: $count = DB::select(DB::expr('COUNT(`id`) AS mycount')) ->from('comments') ->where('article_id', '=', $article_id); передавая каждый раз новое $article_id |
Страница 1 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |