Подсчитать числовые значения в запросе CakePHP - PullRequest
0 голосов
/ 19 сентября 2011

Я пытаюсь посчитать числовые значения в CakePHP в соответствии с документацией.Что бы я ни пытался, я получаю только количество строк для этого столбца, а не сумму числовых значений.

Запросы в моей статье Статья:

Я пытаюсь подсчитать количество просмотров всех статей в моей базе данных.Hitcount - это поле INT:

$total_articles = $this->find('count', array('fields' => 'Article.hitcount'));

// возвращает 3, общее количество строк в базе данных

Я пытаюсь подсчитать количество hitcounts от конкретного пользователя

$hitcountUser = $this->find('count', array('fields' => 'Article.hitcount', 'conditions' => array('Article.user_id' => $user)));

// возвращает 3, общее количество строк в базе данных, все статьи опубликованы этим пользователем.

Как можно суммировать числовые значения в Article.hitcount?Я погуглил, но не могу найти ответы.

1 Ответ

0 голосов
/ 16 ноября 2011

Счетчик не суммирует значения из поля, которое вы извлекаете. Он выполняет подсчет MySQL, который подсчитывает количество строк, возвращаемых в результате.

Для суммирования поля вы должны вернуть значение MySQL SUM или просмотреть результаты, полученные в PHP, и суммировать их.

Я бы сделал это:

$article = $this->Model->find(
    'first',
    array(
        'fields'=>array('SUM('Article.hitcount') AS Article.hitcountsum'),
    )
);

Что должно дать вам массив вроде:

$article['Article']['hitcountsum'];
...