powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Построение дерева категорий id, Parent id
8 сообщений из 8, страница 1 из 1
Построение дерева категорий id, Parent id
    #39164709
catpirat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, добрый форумчане!!

прошу помочь мне:

есть таблица в Mysql:

Код: php
1.
2.
3.
4.
5.
6.
7.
(2, 'Электрические и газовые плиты/Электрические плиты (электроплиты)'),
(3, 'Холодильники и морозильники/Однокамерные холодильники'),
(4, 'Холодильники и морозильники/Двухкамерные холодильники'),
(5, 'Бытовая техника для кухни/Кухонная посуда и принадлежности/Сковороды'),
(6, 'Встраиваемая бытовая техника/Встраиваемая техника для приготовления пищи и напитков/Встраиваемые электрические духовые шкафы'),
(7, 'Встраиваемая бытовая техника/Встраиваемые холодильники и морозильники/Встраиваемые морозильники'),
(8, 'Бытовая техника для кухни/Подготовка и обработка продуктов/Мясорубки'), и так далее



Категории и под категории разбиты /

необходимо разнести данные этой таблицы в две другие назначая id для главных категорий и Parent id для под категорий для дальнейшего вывода древовидного меню.

Заполняемые Таблицы

Код: php
1.
Таблица categories (id, parent_id)


и
Код: php
1.
Таблица categories_title (id, category_name)()



То есть нужно построить дерево категорий

Помогите пожалуйста с функцией

P.s если можно только кодом
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164723
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
catpirat,

зачем 2 таблицы там, где достаточно одной (id, parentId, title) ?!
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164728
catpirat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр,

Я бы не против в одну но так построена CMS osclass.
Позарез нужно нужно сделать импорт, знаний PHP не хватает (
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164808
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
fucntion insertCategories($db, $catString)
{
	$cats = explode ('/', $catString);
	$parentId = 0;
	foreach ($cats as $catTitle) {
		$sql = "INSERT INTO categories_title (category_name) VALUES ('{$catTitle}')";
		$db->query($sql);
		$catId = $db->insert_id;
		
		$sql = "INSERT INTO categories (id, parent_id) VALUES ('{$catId}', '{$parentId}')";
		$parentId = $catId;
	}
}

$mysqli = new mysqli("host", "username", "password", "dbname");

$arr = [
	2 => 'Электрические и газовые плиты/Электрические плиты (электроплиты)',
	3 =>  'Холодильники и морозильники/Однокамерные холодильники',
	4 =>  'Холодильники и морозильники/Двухкамерные холодильники',
	5 =>  'Бытовая техника для кухни/Кухонная посуда и принадлежности/Сковороды',
	6 =>  'Встраиваемая бытовая техника/Встраиваемая техника для приготовления пищи и напитков/Встраиваемые электрические духовые шкафы',
	7 =>  'Встраиваемая бытовая техника/Встраиваемые холодильники и морозильники/Встраиваемые морозильники',
	8 =>  'Бытовая техника для кухни/Подготовка и обработка продуктов/Мясорубки'
];

foreach ($arr as $catString) {
	insertCategories($mysqli, $catString);
}
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164978
catpirat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

Спасибо, добрый человек, попробую Ваш код
))
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164984
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
fucntion insertCategories($db, $catString)
{
	$cats = explode ('/', $catString);
	$parentId = 0;
	foreach ($cats as $catTitle) {
		$sql = "INSERT INTO categories_title (category_name) VALUES ('{$catTitle}')";
		$db->query($sql);
		$catId = $db->insert_id;
		
		$sql = "INSERT INTO categories (id, parent_id) VALUES ('{$catId}', '{$parentId}')";
		$parentId = $catId;
	}
}

$mysqli = new mysqli("host", "username", "password", "dbname");

$arr = [
	2 => 'Электрические и газовые плиты/Электрические плиты (электроплиты)',
	3 =>  'Холодильники и морозильники/Однокамерные холодильники',
	4 =>  'Холодильники и морозильники/Двухкамерные холодильники',
	5 =>  'Бытовая техника для кухни/Кухонная посуда и принадлежности/Сковороды',
	6 =>  'Встраиваемая бытовая техника/Встраиваемая техника для приготовления пищи и напитков/Встраиваемые электрические духовые шкафы',
	7 =>  'Встраиваемая бытовая техника/Встраиваемые холодильники и морозильники/Встраиваемые морозильники',
	8 =>  'Бытовая техника для кухни/Подготовка и обработка продуктов/Мясорубки'
];

foreach ($arr as $catString) {
	insertCategories($mysqli, $catString);
}



Работать будет неправильно. )
Код создаст 2 одноимённые категории "Холодильники и морозильники" и в каждую закинет по одной подкатегории.
Потому на этапе записи категории надо проверять есть ли такая в базе, и если есть пропускать запись ещё одной и переходить сразу к подкатегории, присвоив parentId айди найденной записи.

вот так )
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39164994
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

да, все верно, не обратил внимание, что они повторяются. Можно в массив складывать id и названия вставленных категорий, чтобы в базу не лезть лишний раз.
...
Рейтинг: 0 / 0
Построение дерева категорий id, Parent id
    #39165048
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Да, а ещё, если это категории и подкатегории, то в них вкладываются некие товары ) И вкладываться они должна по некому принципу (например id категории должно быть записано как parentId для товара)

Таким образом, такое перестроение принципа записи категорий, ни в коем случае не должно повлиять на их идентификаторы, иначе товары попадут не на свои места.

И это тоже надо учитывать. Не сильно сложно, но парочку-другую строчек в код надо будет добавить.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Построение дерева категорий id, Parent id
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]