Topic: Kategorijos

Kokia turetu buti lenteles struktura, kad patogiausia butu joje laikyti kategoriju pavadinimus, lengvai galetu pasiekti norimus.

Na pavyzdziui as sukuriu tokia lentele:

CREATE TABLE `kategorija` (
`kategorija_id` int(11) NOT NULL auto_increment,
`parent` tinyint(3) unsigned default NULL,
`kategorija` varchar(30) default NULL,
PRIMARY KEY (`kategorija_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Dyomenys lenteje yra saugomi sitaip:

id parent kategorija

1 0 Transportas
2 1 Automobiliai
3 2 Alfa Romeo
4 2 BMW
5 2 Cadillac
6 2 Cherokee
7 2 Toyota
8 2 Volkswagen
9 2 Volvo
10 1 Moto
11 3 Mopedai
12 3 Motociklai
13 3 Motoroleriai
14 1 Autobusai
15 1 Krovininiai automobiliai
16 1 žemės ūkio technika
17 1 Dalys, aksesuarai
18 4 Auto aparatūra
19 5 Kolonėlės
20 5 Magnetolos
21 0 Komunikacijos
22 6 Mobilūs telefonai
23 7 Alcatel
24 7 LG
25 7 NEC
26 7 Panasonic
27 7 Sagem
28 6 GPS įranga
29 6 Telefonai, faksai
30 6 Priedai
31 8 Akumuliatoriai
32 8 Laidai, jungtys
33 8 Pakrovėjai
34 6 Remontas

Saknines kategorijos yra, kurios yra pazymetos 0 (Transportas, Komunikacijos)

Transportas->Automobiliai->BMW
Komunikacijos->Priedai->Pakrovejai

Viskas pateikiama select komponente.

Taigi, kaip butu lengviausia sitas kategorijas saugoti, kad jas pasiekti galetu belekada. Gylis kintamas.

Na tikiuosi suprasit, ko pageidauju.

Re: Kategorijos

Tai jeigu nėra kažkokių reikalavimų kategorijų saugojimui tai saugok taip kaip pats ir parodei. O jeigu turėsi tam tikrų reikalavimų išrinkimui/atnaujinimui/įterpimui tada galima kažką ir daugiau mąstyti ;) Juk kaip saugoti medžius/kategorijus yra labai daug būdų, kažkokio vieno tinkančio viskam nėr.

Re: Kategorijos

Na bet man problemos iškyla su kategorijų atrinkimu. šaknines kategorijas atrinkti paprasta, o jau pirmo, antro ar trečio lygio nelabai gaunasi.

$uzklausa = mysql_query("SELECT kategorija FROM kategorijos WHERE parent = 0", $db); -> atrinkti šakninėms kategorijoms.

$uzklausa = mysql_query("SELECT * FROM kategorijos WHERE kategorija_id >= ($p[kategorija]+1) and parent = (SELECT parent FROM kategorijos WHERE kategorija_id = ($p[kategorija]+1))", $db); -> šitaip bandau atrinkti aukštesnio lygio kategorijas, bet...

$p[kategorija] -> tai kintamasis perduodamas iš select komponento, perduoda kategorija_id

Re: Kategorijos

Tai vat iš pradžų ir reikia kelti reikalavimus.
Kadangi kol kas tik vieną iškėlei tai gal tiks šitas būdas: http://www.sitepoint.com/article/hierar … a-database