Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Суммирование значений одинаковых ячеек из 2 таблиц mysql
Форумы портала PHP.SU » » Работа с СУБД » Суммирование значений одинаковых ячеек из 2 таблиц mysql

Страниц (1): [1]
 

1. sogdianacha - 20 Февраля, 2012 - 00:26:50 - перейти к сообщению
Здравствуйте,
У меня такая задача, которую никак не получается решить. Есть таблица списка коренных категорий вмести с дочерними категориями. А также есть таблица объявлений, которые связываются с таблицей категорий. Нужно чтобы мы смогли соединиться к 2 таблицам и подсчитать объявления, которые относятся и коренным и дочерним категориям и вывести количество (например, авто(49). В авто имеются скажем 3 подкатегорий, в которых хранятся объявления, а в самом коренном категории авто нет объявлений, а только подкатегории, в которых хранятся объявления. Необходимо, чтобы мы смогли подсчитать сколько объявлений в дочерних категориях и вывести их количество рядом с коренной категорией). Ниже приведен код, в котором никак не могу добиться ожидаемого результата. Прошу вас помочь с решением данного вопроса. Заранее спасибо.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $GLOBALS['cccount'] = 0;
  4. if (defined('JBCITY')) $GLOBALS['subQuery'] = ' AND city_id = '.JBCITY; else $GLOBALS['subQuery'] = '';
  5. function listcat2($id,$sub){
  6. $categories = mysql_query("SELECT id, child_category, name_cat, en_name_cat FROM jb_board_cat WHERE root_category = $id ORDER by sort_index"); cq();
  7. while($category = mysql_fetch_assoc($categories)){
  8. $name_cat = (defined('JBLANG') && constant('JBLANG')=='en') ? $category['en_name_cat'] : $category['name_cat'];
  9. $count_ads = mysql_result(mysql_query("SELECT COUNT(id) from jb_board WHERE id_category='".$category['id']."' AND old_mess='old'".$GLOBALS['subQuery']), 0);cq();
  10. //if($sub=="2") $subclass="class=\"subclass\"";else $subclass="";
  11. echo "(".$count_ads.")";
  12. $GLOBALS['cccount'] = $GLOBALS['cccount'] + $count_ads;
  13. if($category['child_category']==1){listcat2($category['id'],$sub+1);}
  14. }
  15. }
  16.  
  17. $categories = mysql_query("SELECT id, root_category, child_category, name_cat,en_name_cat,img FROM jb_board_cat WHERE root_category=0 ORDER by sort_index"); cq();
  18. $num_rows = @mysql_num_rows($categories);
  19. $count_field=round($num_rows/2);$td=0;
  20. echo "<div style=\"float:left;width:50%;\" class=\"index_cat gray sm\">";
  21. while($category = @mysql_fetch_assoc($categories)){
  22. $name_cat = (defined('JBLANG') && constant('JBLANG')=='en') ? $category['en_name_cat'] : $category['name_cat'];
  23. echo (@$category['img'])?"<img alt=\"".$name_cat."\" class=\"rootcatimg\" src=\"".$u."cat/".$category['img']."\" />":"";
  24. $lastres = mysql_query("SELECT COUNT(id) FROM `jb_board` WHERE `id_category` IN (SELECT `id` FROM `jb_board_cat` WHERE `root_category` = $id)");
  25. echo "<a class=\"rootcat\" href=\"c".$category['id'].".html\">".$name_cat."</a> (".$lastres.") ";
  26. $td++;if($td>=$count_field){echo "</div><div style=\"float:right;width:50%;\" class=\"index_cat gray sm\">";$td=0;}
  27. }
  28. echo "</div><div class=\"clear\"></div>";
  29. ?>
  30.  

Вот тут ссылка на файл, который выводит список категорий и файл базы таблиц с запросом create: Пожалуйста, помогите с решением моей проблемы. Надеюсь на вашу помощь. Ссылка на файл: http://narod[dot]ru/disk/41275169001/CAT[dot]zip[dot]html
Заранее спасибо
2. sogdianacha - 21 Февраля, 2012 - 22:46:17 - перейти к сообщению
Здравствуйте. Кто-нибудь может помочь?

Проблема в том что на странице категорий, должно отображаться список коренных категорий и рядом с каждым из них количество объявлений, которые находятся в подкатегории данной категории, например Главная категория -> Авто, а подкатегории -> Легковые, и ->Грузовые. В подкаталогах Легковые скажем 31 объявлений, а грузовых 49 объявлений.
На странице списка категорий например для случая категории АВТО должно отображаться общее кол-тво объявлений в скобках (80) и в итоге получается так: Авто(80). В данном случае, считывается общее кол-тво объявлений в подкатегории главной коренной категории. Вот этого и мне нужно добиться. Спасибо

 

Powered by ExBB FM 1.0 RC1