суб категории без ограничение

oniq

Registered
здравейте, кажете ми някаква идея или практично решение, когато в сайта искам да сложа суб категории, те да бъдат неограничено.
Т.е добавяне на суб категория, от нея да се добавя суб - суб и т.н.т
 
Това е готов пример от интернет, иначе принципа е същия.. просто не ми се занимаваше да ти обяснявам всичко на ново, което е говорено хиляди пъти. :)

Първо разгледай тези примери тук: http://www.ozzu.com/programming-forum/php-mysql-multi-level-tree-categories-t70918.html

Трябват ти съвсем малко познания по английски, за да разбереш за какво става на въпрос.


PHP:
<?php
$SQL = mysql_query("SELECT a.name AS parent, b.name AS child FROM `categories` AS a, `categories` AS b WHERE a.id = b.parent") or die(mysql_error());
for ($a=0; $a < mysql_num_rows($SQL); $a++) {
    $SQL_Array = mysql_fetch_array($SQL);
    $parent = $SQL_Array['parent'];
    $child = $SQL_Array['child'];
    if ($parent != $prev_parent) {
		echo "$parent<BR>";
	}
    echo "---$child<BR>";
    $prev_parent=$parent;
}
?>

Категория 1
---1 Субкатегория 1
---1 Субкатегория 2
---1 Субкатегория 3
Категория 2
---2 Субкатегория 1
---2 Субкатегория 2
---2 Субкатегория 3
Категория 3
---3 Субкатегория 1
---3 Субкатегория 2
---3 Субкатегория 3


[sql]CREATE TABLE categories(
`id` INT(25) NOT NULL AUTO_INCREMENT,
`parent` INT(25) NOT NULL,
`name` VARCHAR(25) NOT NULL,
`description` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`),
INDEX `parent` (`parent`),
INDEX `name` (`name`)
);[/sql]

Така можеш да си създаваш - суб-суб-суб-суб категории, колкото искаш.
 
Това, което е показал Тикета се нарича Adjacency List Model и единственото му предимство е простотата на (първоначална) употреба. Колкото повече стават под-нивата, толкова по-трудно става управлението му.

Другия вариант се нарича Nested Set Model - основния му недостатък е, че е труден за първоначално разбиране и използване, но пък веднъж ако го разбереш, след това ще имаш истински неограничени нива на под-категории. Доста по-труден е за разбиране и имплементиране, изискват се задълбочени познания по MYSQL като функции, процедури, транзакции и т.н.

http://en.wikipedia.org/wiki/Nested_set_model
http://www.fliquidstudios.com/2008/12/23/nested-set-in-mysql/
http://stackoverflow.com/questions/5368299/hierarchical-data-nested-set-model-mysql

Joe Celko има много добра книга по темата.
 

Back
Горе