Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Подсчет статей в категориях
http://forum.kohanaframework.su/viewtopic.php?f=33&t=97
Страница 2 из 2

Автор:  Malik [ 29 мар 2012, 02:38 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

admin писал(а):
ну видимо для каждой категории вызывать
Цитата:
$count = DB::select(DB::expr('COUNT(`id`) AS mycount'))
->from('comments')
->where('article_id', '=', $article_id);


передавая каждый раз новое $article_id


Я это понял, сейчас подробней объясню в чем проблема.

Смотрите вот пример контроллера:

Код:
<?php
$categories = Model::factory('category')->categories();
$col_article = Model::factory('article')->all_count($article_id); // как тут получить $article_id, где его взять? $categories['id'] - выводит ошибку. Думаю теперь поняли в чем моя проблема.

$content = View::factory('index/v_main', array(
  'categories' => $categories,
)
);
?>

Автор:  admin [ 29 мар 2012, 17:15 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Тупанул вчера пивка выпил )) можно использовать груп бай и обойтись одним запросом. Все равно медленно,но уже не так. Пардон сижу щас с айпада в кафе. Прийду домой,отвечу более основательно

Насчет получения категорий. Нужно посмотреть, что у вас возвращается. Наберите
var_dump($categories) после фабрики. Скорее всего обратится можно будет как-то вроде $categories->id

Автор:  eBasher [ 29 мар 2012, 22:01 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Вам нужно в модели поменять на
Код:
return $query->execute()->as_array();

если вы хотите, чтобы возвращался массив.

Автор:  Malik [ 29 мар 2012, 22:08 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

admin писал(а):
Тупанул вчера пивка выпил )) можно использовать груп бай и обойтись одним запросом. Все равно медленно,но уже не так. Пардон сижу щас с айпада в кафе. Прийду домой,отвечу более основательно

Насчет получения категорий. Нужно посмотреть, что у вас возвращается. Наберите
var_dump($categories) после фабрики. Скорее всего обратится можно будет как-то вроде $categories->id


Пробовал я таким методом, не помогало.

Автор:  Malik [ 29 мар 2012, 22:09 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

eBasher писал(а):
Вам нужно в модели поменять на
Код:
return $query->execute()->as_array();

если вы хотите, чтобы возвращался массив.


А вот за это огромное спасибо :)

Автор:  admin [ 29 мар 2012, 22:12 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Вы вар_дамп делали ? Что пишет ?
У вас сейчас возвращает объект, а в случае, что написал eBasher будет возвращаться массив. Работать можно и с тем, и с другим. Вопрос удобства.

Автор:  Malik [ 29 мар 2012, 22:18 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

admin писал(а):
Вы вар_дамп делали ? Что пишет ?


Выводит это:
Код:
object(Database_MySQL_Result)[20]
  protected '_internal_row' => int 0
  protected '_query' => string 'SELECT * FROM `category` ORDER BY `name` DESC' (length=45)
  protected '_result' => resource(76, mysql result)
  protected '_total_rows' => int 5
  protected '_current_row' => int 0
  protected '_as_object' => boolean false
  protected '_object_params' => null

Автор:  admin [ 29 мар 2012, 22:38 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Ааа...
Можно написать так:
Код:
return $query->as_object()->execute(); 


чтобы вернуть объект. Но тут лучше все-таки работать с массивом. Имхо )

Автор:  vfvtnjd [ 16 апр 2012, 16:51 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Думаю, нужно как то
Код:
group by $article_id
сделать.

Автор:  admin [ 17 апр 2012, 10:41 ]
Заголовок сообщения:  Re: Подсчет статей в категориях

Ну да, о чем я и писал. Но если количество статей предполагается очень большое, то лучше все-таки отдельное поле завести.

Страница 2 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/