Категории с много под категории

kulov

Registered
Здравейте, чудех се как да направя много категории с още подкатегории във всяка категория, ако не сте ме разбрали примерно категория ДРУГИ и вътре категории, ето пример

Категория - ДРУГИ
-Жени
-Мъже
-Компютри
-Лаптопи

Тези отдоло са подкатегории, в които ще са самите неща, които ще се добавят.. та се чудех как да го напрявя, говоря за база данни като цяло, не ми е нужен код, а просто начин да речем таблица cats в която ще са категориите, и друга таблица с под категориите.. такива идеи ми трябват .. :)
 
Код:
CREATE TABLE `categories`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

Код:
CREATE TABLE `subcategories`(
`id` INT NOT NULL AUTO_INCREMENT,
`catid` VARCHAR(255) NOT NULL,
`name` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

и сега остава да си направиш кода за правене на категории и после при правенето на subcategory имаш нещо от типа на:
в catid записваш id на категорията, към която принадлежи новата подкатегория + останалите данни като име и т.н. :)
 
subcat таблица направи, те ще имат същите маний, като категориите само ще сложиш още едно редче например main_cat и там ще са id на главната категория, не си от тъпите затова няма да ти обяснявам толкова подробно, мисля, че си разбрал.
 
THC каза:
Код:
CREATE TABLE `categories`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

Код:
CREATE TABLE `subcategories`(
`id` INT NOT NULL AUTO_INCREMENT,
`catid` VARCHAR(255) NOT NULL,
`name` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

и сега остава да си направиш кода за правене на категории и после при правенето на subcategory имаш нещо от типа на:
в catid записваш id на категорията, към която принадлежи новата подкатегория + останалите данни като име и т.н. :)

Ако съм оспял да те разбера, и аз мисля да го направя така, и по-точно Имам си таблица с категориите, и съответно таблица с под категориите, като всяка под категория ще се отнася за някоя категория, и за да се разбира коя под категория към коя категория ще е ще се записва и ид на главната категория към която принадлежи под категорията, до тук добре. След като почна да добавям съответната информация, и по-точно обявите ще се записва ид на под категорията, като изведа под категорията от нея ще мога да изведа и главната категория .. нещо такова ще е, но ще изчакам още малко, може някой да даде някакъв друг, по практичен начин :D

ЕДИТ :

@Karcho Ами да, и ти си тругнал по същата логика, както THC и както мен .. сигурно ще е така, както казах ще изчакам малко да видя за още отговори :?:
 
Еми то друг начин аз не виждам.
Просто после имаш някаква заявка от типа на:

Код:
<?php
$query = mysql_query("SELECT * FROM categories");
while($row = mysql_fetch_array($query)){
echo "$row[name]:";
$sub = mysql_query("SELECT * FROM subcategories WHERE catid = '$row[id]'");
while($rowa = mysql_fetch_array($sub)){
echo "<br>$rowa[name]";
}
echo "<p>";
}
?>

И ще имаш един удобен списък от типа:
Категория:
подкатегория 1
подкатегория 2
подкатегория n

Категория2:
...
 

Back
Горе