Помогите выполнить SQL запрос

 
Посетитель
small user social cms
Сообщений: 19
Надо просуммировать поле hits из таблицы cms_content с определенной категорией
Выполняю так:

SELECT SUM (hits) FROM cms_content WHERE category_id = 49

но не получается.
Пожалуйста, помогите
Посетитель
small user social cms
Медаль
Сообщений: 422
а зачем вам это?
Cвободен
Реклама
cms
Посетитель
small user social cms
Сообщений: 19
Shahin:

а зачем вам это?

Чтобы посчитать сумму просмотров статей в определенной категории
Редактировалось: 1 раз (Последний: 3 января 2014 в 22:18)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
Код SQL:
  1. SELECT SUM(hits) FROM cms_content WHERE category_id = 49
пробела быть не должно
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Сообщений: 19
Код PHP:
  1.  
  2.  
  3. if ($cfg['contentsumm']) {
  4.  
  5. $count_sql_contentsumm = "SELECT SUM(hits) FROM cms_content WHERE category_id = 1";
  6.  
  7. $count_contentsumm = $inDB->query($count_sql_contentsumm);
  8.  
  9. $total_contentsumm = $inDB->num_rows($count_contentsumm);
  10.  
  11. $smarty->assign('total_contentsumm', $total_contentsumm);
  12.  
  13. }
  14.  
Вот такой вот запрос. Делал по аналогии со статистикой материалов.

Все равно не получается
Редактировалось: 1 раз (Последний: 3 января 2014 в 23:05)
Посетитель
small user social cms
Медаль
Сообщений: 164
А мне поможете?
Посетитель
small user social cms
Медаль
Сообщений: 164
Есть две таблицы в БД.
Выводится список из первой таблице.
Далее нужно сделать, чтобы отборка шла из второй таблице.
Как это сделать?

Спойлер
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
Код PHP:
  1. $sql = "SELECT SUM(hits) as hits_count FROM cms_content WHERE category_id = 1";
  2. $r = $inDB->query($sql);
  3. $data = $inDB->fetch_assoc($r);
  4.  
  5. $smarty->assign('total_contentsumm', $data['hits_count']);
ByFly:
А мне поможете?
Правила сайта:
2.6. Соблюдайте принцип «одна тема = одна проблема». Не нужно решать все свои вопросы в рамках одной темы.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
num_rows() вернет количество строк выборки. А он в данном случае покажет всегда 1. Нужно примерно так:
Код PHP:
  1.  
  2. if ($cfg['contentsumm']) {
  3.  
  4. $count_sql_contentsumm = "SELECT SUM(hits) as sum FROM cms_content WHERE category_id = 1";
  5.  
  6. $count_contentsumm = $inDB->query($count_sql_contentsumm);
  7.  
  8. $total_contentsumm = $inDB->num_rows($count_contentsumm) ? $inDB->fetch_assoc($count_contentsumm) : 0;
  9.  
  10. $smarty->assign('total_contentsumm', $total_contentsumm['sum']);
  11.  
  12. }
  13.  
Хватит париться, живи как нравится!
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
Упс, Fuze опередил :=)
Хватит париться, живи как нравится!
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
ByFly, у вас идет выборка из первой табл. всех строк и их объединение с полями из второй таблицы. В запросе просто поменяйте таблицы. Если я вас правильно понял.
Как то так:
Код PHP:
  1.  
  2. $query = "SELECT a.plrid, a.kills, a.deaths, b.name FROM ps_plr_ids_name b
  3. LEFT JOIN ps_c_plr_data a ON a.plrid = b.plrid
  4. GROUP BY a.plrid
  5. ORDER BY a.kills DESC
  6. LIMIT 10";
  7.  
Ну, если нужно, поменяйте GROUP BY и ORDER BY
Это, если я вас правильно понял.
Хватит париться, живи как нравится!
Посетитель
small user social cms
Сообщений: 19
Марат:

num_rows() вернет количество строк выборки. А он в данном случае покажет всегда 1. Нужно примерно так:
Код PHP:
  1.  
  2. if ($cfg['contentsumm']) {
  3.  
  4. $count_sql_contentsumm = "SELECT SUM(hits) as sum FROM cms_content WHERE category_id = 1";
  5.  
  6. $count_contentsumm = $inDB->query($count_sql_contentsumm);
  7.  
  8. $total_contentsumm = $inDB->num_rows($count_contentsumm) ? $inDB->fetch_assoc($count_contentsumm) : 0;
  9.  
  10. $smarty->assign('total_contentsumm', $total_contentsumm['sum']);
  11.  
  12. }
  13.  

Большое спасибо. Мучился целый день) Просто супер - заработало.
Посетитель
small user social cms
Медаль
Сообщений: 164
Марат, не, этот код вообще не правильный, я создал новую тему, прочитайте пожалуйста :)
Посетитель
small user social cms
Сообщений: 19
Всем большое спасибо. Даже Fuze поучаствовал. Это круто. Всех с НАСТУПИВШИМ!
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.