Pozdrav.
U pirncipu imam situaciju gdje imam neogranicen broj kategorija (razliciti nivoi) i neogranicen broj proizovda.
Na dnu se nalaze strukture tabela i testni podaci.
U principu meni je potrebno da za odredjeni id kategorije (PK za category tabelu) dobijem prozivode koji spadaju u tu kategoriju (+proizvodi njenih potkategorija).
Npr za ID = 3 bi trebalo da izbaci 3 prozivoda.
Npr za ID = 5 bi trebalo da izbaci 1 prozivod.
Npr za ID = 6 bi trebalo da izbaci 2 prozivoda.
Npr za ID = 7 bi trebalo da izbaci 1 prozivod.
Da li je ovo moguce da dobijem sa jednim upitom (pretohdno se pravi upit koji bi dobavio podatke o toj kategoriji, tako da su id_father, parents_list ... unaprijed dostupni) u kojem bi se mijenjao samo id kategorije. Naravno, ako je potrebno da se korz programsk jezik gradi upit, ovisno o broju kategorija, nije iskljucujauca varijanata.
Lijep pozdrav.
Kôd:
--
-- Table structure for table `category`
--
CREATE TABLE `category` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) default NULL,
`id_father` smallint(6) NOT NULL default '0',
`parents_list` text NOT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`,`id_father`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
--
-- Dumping data for table `category`
--
INSERT INTO `category` VALUES (1, 'Cat 1', 0, '1');
INSERT INTO `category` VALUES (2, 'Cat 2', 0, '2');
INSERT INTO `category` VALUES (3, 'Cat 3', 0, '3');
INSERT INTO `category` VALUES (4, 'Cat 4', 0, '4');
INSERT INTO `category` VALUES (5, 'Cat 5', 1, '1,5');
INSERT INTO `category` VALUES (6, 'Cat 6', 1, '1,6');
INSERT INTO `category` VALUES (7, 'Cat 7', 6, '1,6,7');
-- --------------------------------------------------------
--
-- Table structure for table `product`
--
CREATE TABLE `product` (
`id_product` int(11) NOT NULL auto_increment,
`title` varchar(255) default NULL,
`id_category` int(11) NOT NULL default '0',
PRIMARY KEY (`id_product`),
KEY `id_category` (`id_category`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `product`
--
INSERT INTO `product` VALUES (1, 'Prod 1', 5);
INSERT INTO `product` VALUES (2, 'Prod 2', 6);
INSERT INTO `product` VALUES (3, 'Prod 3', 7);