jestem laikiem, mam jednak nadzieje ze początkującego nie zbesztacie,
zaczne od tego co chce osiągnąć :
1. chce osiągnąć taki kod, jest on mi potrzebny do menu : (kategorie i podkategorie):
<script type="text/plain">{"children":[ {"children":[{"children":[],"id":9000,"localizedName":"pokoje do wynajęcia"}, {"children":[],"id":9008,"localizedName":"mieszkania i domy do wynajęcia"}, {"children":[],"id":9073,"localizedName":"mieszkania i domy - sprzedam"}, {"children":[],"id":9194,"localizedName":"działki"}, {"children":[],"id":9074,"localizedName":"krótki termin i domki letniskowe"}, {"children":[],"id":9072,"localizedName":"lokal i biuro"}, {"children":[],"id":9071,"localizedName":"parking i garaż"}, {"children":[],"id":9772,"localizedName":"kupię mieszkanie, dom, lokal, działkę"}, {"children":[],"id":9773,"localizedName":"szukam mieszkania do wynajęcia"}, {"children":[],"id":9774,"localizedName":"szukam pokoju do wynajęcia"}], "id":2,"localizedName":"Nieruchomości"}, {"children":[{"children":[],"id":9026,"localizedName":"samochody osobowe"}, {"children":[],"id":9636,"localizedName":"części i akcesoria samochodowe"}, {"children":[],"id":9027,"localizedName":"samochody dostawcze"}, {"children":[],"id":9028,"localizedName":"motocykle i skutery"}], "id":5,"localizedName":"Motoryzacja"}], "id":0,"localizedName":"Wszystkie kategorie"} </script>
2. posiadam tablice kategoria i podkategoria:
CREATE TABLE IF NOT EXISTS `kategoria` ( `katId` int(11) NOT NULL AUTO_INCREMENT, `katName` varchar(255) NOT NULL, PRIMARY KEY (`katId`) ) INSERT INTO `kategoria` (`katId`, `katName`) VALUES (1, 'PRACA'), (2, 'RÓŻNE'), (3, 'ODZIEŻ I BIŻUTERIA'), (4, 'TELEFONY'), (22, 'ANTYKI I SZTUKA'), (6, 'AGD I RTV'), (8, 'DOM I OGRÓD'), (9, 'DLA FIRMY'), (10, 'HANDEL I USŁUGI'), (11, 'ELEKTRONIKA'), (12, 'MOTORYZACJA'), (13, 'MUZYKA I EDUKACJA'), (14, 'NIERUCHOMOŚCI'), (15, 'TOWARZYSKIE'), (16, 'TURYSTYKA'), (17, 'ZDROWIE I URODA'), (18, 'FLORA I FAUNA'), (19, 'SPORT I HOBBY'), (20, 'ROLNICTWO'), (21, 'DLA DZIECI'); =============================== CREATE TABLE IF NOT EXISTS `podkategoria` ( `idPod` int(9) NOT NULL AUTO_INCREMENT, `idKat` int(9) NOT NULL DEFAULT '0', `podName` varchar(255) NOT NULL DEFAULT '', `podST` int(5) NOT NULL DEFAULT '0', PRIMARY KEY (`idPod`), KEY `idKat` (`idKat`) ) INSERT INTO `podkategoria` (`idPod`, `idKat`, `podName`, `podST`) VALUES (83, 3, 'Biżuteria', 1), (84, 1, 'Fizyczna', 1), (85, 6, 'Elektronika', 1), (86, 6, 'Sprzęt AGD', 1), (87, 6, 'Sprzęt audio', 1), (88, 6, 'TV i Video', 1), (89, 22, 'Antyki', 1), (90, 22, 'Kolekcje', 1), (91, 22, 'Sztuka', 1), (92, 22, 'Pozostałe', 1), (93, 8, 'Budownictwo', 1), (94, 8, 'Meble', 1), (101, 18, 'Psy', 1), ... (247, 0, 'Brak', 0);
3. znalazłem przykład który mógł by pomoc jednak nie bardzo wiem co w nim poprawić, dlatego proszę o rade sugestie pomoc.
Podkreślam to jest przykład nie ma nic wspólnego z moimi danymi
var arry = [{ "Id": "1", "Name": "abc", "Parent": "", "attr": "abc" }, { "Id": "2", "Name": "abc", "Parent": "1", "attr": "abc" }, { "Id": "3", "Name": "abc", "Parent": "2", "attr": "abc" }, { "Id": "4", "Name": "abc", "Parent": "2", "attr": "abc" }]; var map = {}; obj.items= []; map[obj.Id] = obj; var parent = obj.Parent || '-'; if(!map[parent]){ map[parent] = { items: [] }; } map[parent].items.push(obj); } return map['-'].items; } var r = convert(arry) ?>
ten przyklad generuje kod:
[{ "Id" : "1", "Name" : "abc", "Parent" : "", "attr" : "abc", "children" : [{ "Id" : "2", "Name" : "abc", "Parent" : "1", "attr" : "abc", "children" : [{ "Id" : "3", "Name" : "abc", "Parent" : "2", "attr" : "abc", "children" : [] }, { "Id" : "4", "Name" : "abc", "Parent" : "2", "attr" : "abc", "children" : [] }] }] }]
niestety nie wiem jak zmodyfikowac ten przykład, by uzyskać to co chce czyli punkt 1 (kod prawidłowy)
prosze o radę, pomoc w tej sprawie.