2012-02-10 10 views
5

मैं एसक्यूएल डेटाबेस में सबमिट आलेख को वर्गीकृत कैसे करूं ताकि जब उपयोगकर्ता कुछ श्रेणी में कोई लेख पोस्ट करना चाहता था, तो उन्हें उस श्रेणी में कौन सा लेख प्रकाशित करना है, यह चुनने के लिए ड्रॉपडाउन मेनू दिया जाता है। हमें, उत्पादों, और समर्थन के बारे में श्रेणियांमैं एसक्यूएल डेटाबेस में सबमिट आलेख को वर्गीकृत कैसे करूं?

<form method="post" action="postArticle.php"> 
<p> 
    <select name="selectedOption"> 
     <optgroup label="About us"> 
      <option value="about">About us</option> 
     </optgroup> 

     <optgroup label="Products"> 
      <option value="foo">Foo</option> 
      <option value="oof">Oof</option> 
     </optgroup> 

     <optgroup label="Support"> 
      <option value="support">Support</option> 
     </optgroup> 
    </select> 
</p> 

उत्तर

0

आपका सबसे अच्छा शर्त एक Category तालिका कि दुकानों उपलब्ध श्रेणियों है के उदाहरण हैं। फिर, प्रत्येक पंक्ति की आईडी का उपयोग करके, प्रत्येक आलेख के लिए श्रेणी आईडी रखने के लिए लेख तालिका में category_id फ़ील्ड बनाएं। यह श्रेणी तालिका के लिए विदेशी कुंजी होगी।

आपके पास उस लेख श्रेणी के बारे में जानकारी होगी। इसके विपरीत, आप किसी दिए गए श्रेणी से सभी लेखों का चयन कर सकते हैं।

1

पहली बार ऐसा लगता है कि आपको संरचना को लागू करने के लिए बस एक साधारण तालिका की आवश्यकता है जो आपको श्रेणी संरचना का घोंसला वाला सरणी बनाने की अनुमति देगा। parent_id == 0 वाली कोई भी श्रेणी optgroup है और फिर आप प्रत्येक उप-श्रेणियों को प्रत्येक पेरेंट optgroup के भीतर option के रूप में सूचीबद्ध करेंगे।

category_id | parent_id | category_name 
1    | 0   | About us 
2    | 1   | About us 
3    | 0   | Products 
4    | 3   | foo 
5    | 3   | oof 
6    | 0   | Support 
7    | 6   | Support 

यह आउटपुट होगा के रूप में:

<form method="post" action="postArticle.php"> 
<p> 
    <select name="selectedOption"> 
     <optgroup label="About us"> 
      <option value="2">About us</option> 
     </optgroup> 

     <optgroup label="Products"> 
      <option value="4">Foo</option> 
      <option value="5">Oof</option> 
     </optgroup> 

     <optgroup label="Support"> 
      <option value="6">Support</option> 
     </optgroup> 
    </select> 
</p> 

आप स्पष्ट रूप से तो लेख तालिका में चयन से मूल्य स्टोर कर सकते हैं श्रेणी तालिका से जोड़ने के लिए। ध्यान दें कि आप उपरोक्त में मूल श्रेणियों का चयन नहीं कर सकते हैं, केवल उपश्रेणियां (जिन्हें आप मामला बनना चाहते हैं)। जाहिर है कि यदि आपके पास केवल एक उपश्रेणी (जो मूल श्रेणी के नाम को डुप्लिकेट करता है) के साथ बहुत से समूह होते हैं तो यह बहुत ही कुशल नहीं है और आप यह देखना चाहेंगे कि आप अपनी श्रेणियों को कैसे बना रहे हैं, या आप इसके बजाय ड्रॉप करना चाहते हैं optgroup पूरी तरह से और प्रत्येक वर्ग के तहत उपश्रेणियों के लिए लेबल को केवल दृश्यमान रूप से इंडेंट करें। इस तरह प्रत्येक श्रेणी (माता-पिता समेत) option बन जाती है और चयन योग्य होती है, जिसे आप नहीं चाहते हैं।

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