- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день всем. Столкнулся с задачей, которую не могу никак реализовать. Прошу помощи.
Есть таблица в бд.
Поля таблицы:
id,name,parentId,children
id = идентификатор категории (раздела каталога)
name = название раздела каталога
parentId = идентификатор родительского раздела каталога (для разделов самого верхнего уровня – «0»)
children = для разделов самого верхнего уровня поле не заполняется; для разделов промежуточного уровня содержит список идентификаторов дочерних разделов низшего уровня; для разделов низшего уровня содержит собственный идентификатор
Необходимо вывести строки в виде многоуровневого списка (UL), с учетом вложенных категорий.
При этом, конечно, нужно не положить мускуль запросами :)
Создал таблицу:
Занес значения:
mysql> insert into test(name, parentid, children) values('корень 1', 0, ''), ('подкатегория', 1, '5,6,7'), ('корень 2', 0, ''), ('еще подкатегория', 3, '8,9,10'), ('пять', 2, '5'), ('шесть', 2, '6'), ('семь', 2, '7'), ('восемь', 4, '8'), ('девять', 4, '9'), ('десять', 4, 10);Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0
Получилось вот что:
Далее, список категорий с подкатегориями можно получить следующим образом:
а список категорий последнего уровня по циклу для каждой записи так:
где $ids - значение последнего столбца в предыдущем результате. Например:
Для работы с древовидными данными в mysql есть хорошая статья
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
Вам посоветую сделать так:
Выбираете ВСЕ данные из таблицы категорий. Пишете рекурсивную функцию, которая
определяет уровни для конкретного элемента, добавляет индекс уровня вложенности "level" (0,1,2,3..) к каждому из них. Далее упорядочиваете согласно уровня и выводите.
В таком случае, лучше всю вложенность возложить на индексы id и parentid, избавившись от children. У меня на работе на разрабатываемом мной корпоративном сайте телефонный справочник имеет древовидную структуру, имеется php-функция, строящая по данным из таблицы древовидный ассоциативный php-массив, если нужно, поделюсь