Категория подкатегория MySQL запрос

0

Я пытался создать ветку категории/подкатегории с формулами count в MySQL, но я не имел успеха.

Мои продукты хранятся в моей базе данных, как показано ниже:

product_id|parent category | child category | grandchild category |
    1     |       A        |        a       |         α           |
    2     |       B        |        b       |         β           |
    3     |       B        |        b       |         γ           |
    4     |       B        |        c       |         δ           |

и так далее...

Я пытался сделать вывод следующим образом:

array( 
[0] => ([parent category][0] => 'A', [child category][0] => 'a', [gchild cat][0] => 'α', [total][0]=> 1, [total][1] => 1, [total][3]=> 1),

[1] => ([parent category][0] => 'B', [child category][0] => 'b', [child category][1] => 'c' [gchild cat][1] => 'β', [gchild cat][2] => 'γ', [total][0]=> 3, [total][1] => 2, [total][2]=> 1, [total][3]=> 1, [total][4]=> 1, [total][5]=> 1, [total][6]=> 1)
)

используя этот код в MySQL:

SELECT parent_category, child_category, grandchild_category,
            ( 
                COUNT('parent_category')
            ) as total1,
            ( 
                COUNT('child_category')
            ) as total2,
            ( 
                COUNT('grandchild_category')
            ) as total3
            FROM table
            WHERE valid_product= '1'  
            GROUP BY parent_category, child_category, grandchild_category
            ORDER BY parent_category

но, по-видимому, MySQL не объединяет подсчеты и выводит подматрицу для каждой из комбинаций категорий.

Я также попытался использовать следующий формат для моего вывода:

array('title'=> 'B',
      'total' => 3,
      'child_category' => array(array('title' => 'b',
                                      'total' => 2,
                                      'grandchild_category' => array( 
                                                        array('title' => 'β',
                                                              'total' => 1
                                                              ),
                                                        array('title' => 'γ',
                                                              'total' => 1
                                                              )
                                                                     )
                                      ),
                                array('title' => 'c',
                                      'total' => 1,
                                      'grandchild_category' => array( 
                                                        array('title' => 'δ',
                                                              'total' => 1
                                                              )
                                                                     ),
                                     )
                               )
    )

но снова не приближаясь. Кто-нибудь знает, что я могу сделать? Есть ли лучший формат для таких результатов?

  • 0
    Я не знаком с моделью, которая хранит как родителя, так и ребенка. У него есть имя?
Теги:
multidimensional-array
category

1 ответ

1

Это не правильная схема для Category-Sub Category.

id | category |  parent (foreign key to id)
 1 |   A      |   NULL
 2 |   B      |   NULL
 3 |   a      |    1
 4 |   α      |    3
 5 |   b      |    2
 6 |   β      |    5
 7 |   γ      |    5
 8 |   c      |   NULL
 9 |   δ      |    8

Правильно постройте свою схему, поэтому вы можете воспользоваться инструментами и решениями, предоставляемыми во всем мире.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню