mySQL query for getting cascading items count in categories table
I have a categories tree table
id, parent_id, name, count
and other tables that are connected trough category_id that are irrelevant now..
with various queries I get the count (products, users, news, etc) for all categories.
lets say I have a root category ELECTRONICS that has some first level children (TVs, PHOTOCAMERAS, COMPUTERS). Each of them have some more sub categories...
ELECTRONICS
    - TVs
        * LCD
        * Plasma
        * CRT
    - PHOTOCAMERAS
        * DSLR
        * Compact
    - COMPUTERS
        * Laptops
        * Desktops
        * Netbooks
etc...
Now I can count number of products for a specific category... What I'd like to accomplish is to populate counts for the parents categories!
so If开发者_运维技巧 I have 3 products for Plasma TVs and 5 products for LCD TVs and 2 products for CRTs.. the count for TVs should be 10.
So I am struggling with the counting logic... I know I should count from the deepest level up, but how do I do that? What is the correct PHP code for this?
The only thing I have is the CATS array of all categories rows formatted like this:
$CATS = array(
    [cat_id] => array(id, parent_id, name, count),
    [cat_id] => array(id, parent_id, name, count),
);
May be a nested set better fits your needs.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论