Эта таблица не оптимальна ... У вас есть пара бесполезных столбцов. Вам просто нужно "id", "parent_id" и "name", чтобы сделать работу.
В столбце «parent_id» необходимо указать глобальный «id» для записи, которой принадлежит определенная строка, поскольку каждая запись, кроме ROOT, имеет своего родителя. Тогда вам не нужно беспокоиться о количестве подуровней.
Пример
[id] [parent_id] [name]
1 0 food
2 1 indian
3 1 japanis
4 1 chaines
5 1 american
6 1 southex
7 2 up
8 2 delphi
для фильтрации категорий уровня 1 используйте запрос "SELECT * FROM table_name WHERE parent_id = '1'", где id = 1 - идентификатор строки для категории "еда" (root). Таким же образом вы можете отфильтровать все остальные уровни, просто заменив это число - id = 2 на «индийский» и т. Д.
Чтобы динамически изменять выпадающие списки на вашей странице, вам нужен код JavaScript (предварительная загрузка значений; простой способ) или Ajax (обновление на лету; немного сложнее)