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

#1 3 января 2014 в 22:11
Надо просуммировать поле hits из таблицы cms_content с определенной категорией
Выполняю так:

SELECT SUM (hits) FROM cms_content WHERE category_id = 49

но не получается.
Пожалуйста, помогите
#2 3 января 2014 в 22:13
а зачем вам это?
#3 3 января 2014 в 22:17


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

Shahin

Чтобы посчитать сумму просмотров статей в определенной категории
#4 3 января 2014 в 23:00
  1. SELECT SUM(hits) FROM cms_content WHERE category_id = 49
пробела быть не должно
#5 3 января 2014 в 23:05
  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.  
Вот такой вот запрос. Делал по аналогии со статистикой материалов.

Все равно не получается
#6 3 января 2014 в 23:06
А мне поможете?
#7 3 января 2014 в 23:13
Есть две таблицы в БД.
Выводится список из первой таблице.
Далее нужно сделать, чтобы отборка шла из второй таблице.
Как это сделать?

  1. <?
  2.  
  3. $query = "SELECT a.plrid, a.kills, a.deaths, b.name FROM ps_c_plr_data a
  4. LEFT JOIN ps_plr_ids_name b ON b.plrid = a.plrid
  5. GROUP BY a.plrid
  6. ORDER BY a.kills DESC
  7. LIMIT 10";
  8. $res = mysql_query($query);
  9.  
  10. echo'
  11. <table class="table1" width="550" align="center" bgcolor="#F4F4F4">
  12. <tr bgcolor="#8C8C8C">
  13. <th width="50" align="center">#</th>
  14. <th width="300" align="center">Игрок</th>
  15. <th width="100" align="center">Статистика</th>
  16. </tr>
  17. ';
  18.  
  19. $i=1;
  20. while($row = mysql_fetch_array($res))
  21. {
  22. $plrid = $row['plrid'];
  23. $kills = $row['kills'];
  24. $deaths = $row['deaths'];
  25. $name = $row['name'];
  26.  
  27. echo'<tr><td>'.$i;
  28. echo'</td><td>'.$name;
  29. echo'</td><td align="center">';
  30. echo $kills;
  31. echo'-';
  32. echo $deaths;
  33. echo'</td></tr>';
  34. $i++;
  35. }
  36.  
  37. echo'</table>';
  38. ?>
#8 3 января 2014 в 23:20
  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. Соблюдайте принцип «одна тема = одна проблема». Не нужно решать все свои вопросы в рамках одной темы.

Правила сайта
#9 3 января 2014 в 23:25
num_rows() вернет количество строк выборки. А он в данном случае покажет всегда 1. Нужно примерно так:
  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.  
#10 3 января 2014 в 23:26
Упс, Fuze опередил :=)
#11 3 января 2014 в 23:34
ByFly, у вас идет выборка из первой табл. всех строк и их объединение с полями из второй таблицы. В запросе просто поменяйте таблицы. Если я вас правильно понял.
Как то так:
  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
Это, если я вас правильно понял.
#12 3 января 2014 в 23:41


num_rows() вернет количество строк выборки. А он в данном случае покажет всегда 1. Нужно примерно так:

  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.  

Марат

Большое спасибо. Мучился целый день) Просто супер — заработало.
#13 3 января 2014 в 23:41
Марат, не, этот код вообще не правильный, я создал новую тему, прочитайте пожалуйста :)
#14 3 января 2014 в 23:42
Всем большое спасибо. Даже Fuze поучаствовал. Это круто. Всех с НАСТУПИВШИМ!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.