2013-03-01 6 views
6

को सटीक रूप से कैसे पॉप्युलेट करना है मैंने अपनी अन्य ईकॉमर्स वेबसाइट से डेटा को OpenCart में स्थानांतरित करने के लिए ऑनलाइन सेवा का उपयोग किया है और सब कुछ ठीक से स्थानांतरित किया गया प्रतीत होता है।ओपनकार्ट: oc_category_path

हालांकि उत्पाद श्रेणियों के साथ एक मुद्दा है। श्रेणियों को oc_category तालिका में स्थानांतरित कर दिया गया है; हालांकि, ऐसा लगता है कि oc_category_path नामक एक और तालिका है जिसे पॉप्युलेट किया जाना चाहिए, अगर मैं व्यवस्थापक में अपनी श्रेणियों को संपादित करने में सक्षम होना चाहता हूं।

क्या आप जानते हैं कि यह तालिका क्या है और मैं इसे सही तरीके से कैसे पॉप्युलेट कर सकता हूं (मैन्युअल रूप से मेरे मामले में मुझे लगता है)। path_id और level सटीक होने के लिए और क्या श्रेणी का स्तर निर्धारित करता है?

संबंधित टेबल्स:

CREATE TABLE `oc_category` (
    `category_id` int(11) NOT NULL AUTO_INCREMENT, 
    `image` varchar(255) DEFAULT NULL, 
    `parent_id` int(11) NOT NULL DEFAULT '0', 
    `top` tinyint(1) NOT NULL, 
    `column` int(3) NOT NULL, 
    `sort_order` int(3) NOT NULL DEFAULT '0', 
    `status` tinyint(1) NOT NULL, 
    `date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
    `date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (`category_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 

CREATE TABLE `oc_category_description` (
    `category_id` int(11) NOT NULL, 
    `language_id` int(11) NOT NULL, 
    `name` varchar(255) NOT NULL, 
    `description` text NOT NULL, 
    `meta_description` varchar(255) NOT NULL, 
    `meta_keyword` varchar(255) NOT NULL, 
    `u_title` varchar(255) NOT NULL, 
    `u_h1` varchar(255) NOT NULL, 
    `u_h2` varchar(255) NOT NULL, 
    PRIMARY KEY (`category_id`,`language_id`), 
    KEY `name` (`name`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 

CREATE TABLE `oc_category_path` (
    `category_id` int(11) NOT NULL, 
    `path_id` int(11) NOT NULL, 
    `level` int(11) NOT NULL, 
    PRIMARY KEY (`category_id`,`path_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 

उत्तर

10

अपने OC दुकान में एक वर्ग एक रूट श्रेणी है, तो यह इस तरह के "category_id, category_id, 0" के रूप में पथ तालिका में एक प्रविष्टि हो जाता है। यदि उस श्रेणी में कोई बच्चा है तो उसे तालिका में दो प्रविष्टियां मिलेंगी, अर्थात्: - "category_id, category_id, 1" साथ ही "category_id, parent_id, 0"।

कि बच्चे को एक अपने आप बच्चे है, तो यह है कि नए बच्चे जैसे तीन प्रविष्टियों होगा: -
"category_id, category_id, 2"
"category_id, PARENT_ID, 1"
"category_id, माता पिता माता पिता category_id , 0 "

यह समझाने के लिए, मान लें कि एक श्रेणी में" 14 "का category_id है। यह "11" की श्रेणी_आईडी वाली श्रेणी का पहला बच्चा है। "11" की श्रेणी_आईडी के साथ वह श्रेणी "1" की श्रेणी आईडी वाली श्रेणी में बच्चा है।
"14", "14", "2"
: (1> 11> 14 व्यवस्थापक पैनल में शो के रूप में, category_id के बजाय नाम के साथ छोड़कर)

ऊपर जैसे 3 प्रविष्टियों होगा "14", "11", "1"
"14", "1", "0"

तो यह करने के लिए रूट श्रेणी 0 मिल जाएगा, अगले एक 1 हो जाता है, और अगले 2, और बहुत आगे, यह इस बात पर निर्भर करता है कि यह कितने श्रेणी स्तर नीचे है।

मुझे उम्मीद है कि चीजों को अच्छी तरह से समझाएं।

इसे पॉप्युलेट करने के लिए, सबसे सरल विधि, लेकिन एक पूर्ण विधि नहीं है, केवल "category_id, category_id, 0" के साथ तालिका बनाना है। यह उन्हें व्यवस्थापक पैनल में दिखाने के लिए मिल जाएगा। यदि आप फिर "मरम्मत" पर क्लिक करते हैं तो यह इस तालिका को सही ढंग से उत्पन्न करेगा।

वैकल्पिक रूप से आपको श्रेणी तालिका के माध्यम से कदम उठाना होगा, इसके माता-पिता के साथ एक सरणी बनाना होगा, इसके माता-पिता के लिए parent_id को देखकर और इसे सरणी में जोड़ना होगा। जब सरणी पूरी हो जाती है, यानी माता-पिता नहीं, तो यह सही "स्तर" के साथ तालिका में जोड़ने का एक आसान काम होगा।

एफवाईआई, एक और तालिका है जिसके लिए पॉपुलटिंग की आवश्यकता है, category_to_store, जो बहुत ही सरल है "category_id, store_id"। इस तालिका के बिना आप अपनी दुकानों में अपनी श्रेणियों को नहीं देख पाएंगे।

+0

उत्तर के लिए धन्यवाद, यह मेरी मदद की। लेकिन मेरा मानना ​​है कि एक टाइपो है। आपके उदाहरण में मुझे लगता है कि "14", "10", "0" को "14", "1", "0" पढ़ना चाहिए। – maidbloke

+0

आप सही हैं धन्यवाद।मैंने इस तरह के प्रतिबिंबित करने के लिए उत्तर संपादित किया है। –

संबंधित मुद्दे