السلام عليكم ورحمة الله وبركاته
اعزائي ،،بالأمس رأيت موضوع كتبه ayoub henie يسأل فيه عن طريقة عمل الاقسام الفرعية ذات الدرجة الثانية..
وبسبب العطل الذي كان بالمنتدى لم استطع اضافة رد.. كما ان جميع المواضيع والردود وكل ما حصل في الامس قد تم مسحه.. وذلك نتيجة استرجاع اجدد نسخه احتياطيه (على ما اعتقد) المهم.. فقلت لنفسي بما انه لم يعد كتابة الموضوع.. فلماذا لا اطرحه كموضوع مستقل وذلك لتعم الفائده للاخوة المبتدئين
بفرض انه لدينا شجرة الاقسام التالية ونريد حفظها بشكلها في القاعده
- الجدوع المشتركه
- الجدع مشترك علمي
- التربية الإسلاميه
- التربيه الاجتماعية
- الرياضيات
- الاعلاميات
[*]الجدع مشترك أدبي
[*]الجدع مشترك تقني
- التربية الإسلاميه
[*]الاولى بكالوريا
[*]الثانية بكالوريا
- الجدع مشترك علمي
الفكرة باختصار شديد
هي ان تقوم باضافة جدول جديد في القاعده يحتوي على الاقل على 3 حقول وهم
cat_child_id
cat_parent_id
cat_name
يقصد بالحقل الاول: حقل الفرع.. اي القسم الجديد الذي تود اضافته
ويقصد بالحقل الثاني: حقل الأصل.. اي القسم الذي يحتوي على اقسام فرعية بداخله
واخيرا الحقل الاخير: يقصد به اسم هذا القسم
اذا سيكون شكل الجدول هكذا
CREATE TABLE IF NOT EXISTS `categories` ( `cat_child_id` int(11) NOT NULL auto_increment, `cat_parent_id` int(11) NOT NULL default '0', `cat_name` varchar(50) NOT NULL, PRIMARY KEY (`cat_child_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ففي المثال السابق ستكون الاقسام الرئيسية التاليه
الجدوع المشتركه ، الاولى بكالوريا ، الثانيه بكالوريا
يحملون الـ cat_parent_id = 0
والسبب لأنهم هم الاصل اي الاقسام الرئيسية
وكل قسم فرعي جديد تود اضافته تضع في حقل cat_parent_id الخاص به
قيمة ال cat_child_id الخاص بالقسم الذي تود ان ينتمي إليه
وبتطيق المثال السابق فسيكون كالتالي
INSERT INTO `categories` (`cat_child_id`, `cat_parent_id`, `cat_name`) VALUES (1, 0, 'الجدوع المشتركه'), (2, 0, 'الأولى بكالوريا'), (3, 0, 'الثانية بكالوريا'), (4, 1, 'الجدع مشترك علمي'), (5, 1, 'الجدع مشترك أدبي'), (6, 1, 'الجدع مشترك تقني'), (7, 4, 'التربية الاسلاميه'), (8, 4, 'التربيه الاجتماعيه'), (9, 4, 'الرياضيات'), (10, 4, 'الاعلاميات');
وبـتتبع قيمة حقل ال cat_parent_id ستعلم القسم الذي ينتمي إليه الى أن تصل الى القسم الرئيسي
فبهذه الطريقه تستطيع إضافه اقسام فرعية غير متناهية مهما نزلت
ويبقى عليك كتابة مصدر الphp لكي تتمكن من الاستعلام عن الاقسام التي تود عرضها.. وهكذا
بالتوفيق


