Похоже, ваша ситуация отчаянно нуждается в объединении и, возможно, в некотором AJAX, если вы действительно хотите сократить нагрузку на эту страницу.
Если я вас правильно понимаю, вы хотите отобразить древовидное меню категорий, и, вероятно, когда вы нажимаете, чтобы открыть определенную ветку, вы видите элементы, которые подпадают под эту категорию, правильно?
Итак, ваш текущий подход - циклически проходить по категориям, а затем делать выборку из таблицы элементов, чтобы показать их, верно?
Если это так, и я правильно понимаю, это можно решить с помощью простого соединения. Вы хотите сделать один оператор выбора для таблицы элементов, присоединиться к таблице категорий по внешнему ключу, который есть в таблице элементов, а затем отсортировать по категории.
Теперь вы сможете просмотреть один набор результатов, чтобы показать как категории, так и связанные с ними элементы.