У меня есть таблица с категориями (4 уровня), такие как:
+-------+---------------+---------------------------+
| id | sub_for | level |
+-------+---------------+---------------------------+
| 1 | 0 | 1 | - main category
| 2 | 1 | 2 | - first level
| 3 | 2 | 3 | - second level
| 4 | 3 | 4 | - third level
+-------+---------------+---------------------------+
и у меня будет несколько категорий и подкатегорий.
Итак, когда я выбираю основную категорию (уровень 1), мне нужно выбрать все подкатегории.
Я могу достичь второго уровня, как:
$findInIds = array();
$data['category'] = '1';
$query = $this->db->query('SELECT id FROM shop_categories WHERE sub_for = ' . $data['category']);
foreach ($query->result() as $row) {
$findInIds[] = $row->id;
}
и я получаю массив всех подкатегорий уровня 2, связанных с выбранной главной категорией.
Array
(
[0] => 2
)
Полагаю, мне нужно использовать рекурсивную функцию для цикла до 4-го уровня, но я тут заблудился ...