النتائج 1 إلى 7 من 7

الموضوع: [درس] - طريقة عمل النيف بار (شجرة الاقسام)

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73

    [درس] - طريقة عمل النيف بار (شجرة الاقسام)



    السلام عليكم ورحمة الله وبركاته..

    اعزائي هذا مثال بسيط جدا لفكرة عمل النيف بار

    نظرا لطلب اخي العضو the net lion لعمل مثال عن النيف بار في هذا الموضوع
    أحببت ان اطرحه في موضوع مستقل لكي يستفيد منه الجميع

    وقمت بالشرح عمل وفائدة كل سطر في المصدر.. اعتقد انه افضل طريقة لكي لا يتوه الكثير بين الشيفره والشرح

    اولا نقوم بزرع الجدولين التاليين

    الاول للاقسام والثاني للمقالات

    ويمكنك تطويرها كما تريد ومع اي جدول تريده سواء كان اخبار او مقالات او منتجات

    جدول الاقسام
    كود:
    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=7 ;
     
     INSERT INTO `categories` (`cat_child_id`, `cat_parent_id`, `cat_name`) VALUES
     (1, 0, 'tech'),
     (2, 1, 'programming'),
     (3, 2, 'web developing'),
     (4, 3, 'php'),
     (5, 4, 'tutorials'),
     (6, 5, 'advanced');
    وجدول المقالات
    كود:
    CREATE TABLE IF NOT EXISTS `articles` (
       `art_id` int(11) NOT NULL auto_increment,
       `art_cat_id` int(11) NOT NULL,
       `art_title` varchar(50) NOT NULL,
       `art_content` text NOT NULL,
       PRIMARY KEY  (`art_id`)
     ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
     
     INSERT INTO `articles` (`art_id`, `art_cat_id`, `art_title`, `art_content`) VALUES
     (1, 6, 'how to create a class', 'bla bla bla bla..........!');
    وبعد ذلك ملف ال php

    كود PHP:
     <?php
     
     
    /*
     Tutorial made by DeaDSouL (Mubarak Alrashidi)
     لا تنسوني من صالح وخالص دعائكم
     لك مطلق الحريه لاستخدامها كما تريد او التعديل عليها
     */
     
     // الاتصاب بقاعدة البيانات 
     
    $conn mysql_connect("localhost""root""")or die ('cannot connect to the database. error: ' mysql_error());
     
    $db_selected mysql_select_db("mw_test"$conn);
     
     
    // استعلام عن الاقسام
     
    $sql_cat mysql_query("SELECT cat_child_id, cat_parent_id, cat_name FROM categories");
     
     
    // التأكد من الجدول ليس خالي
     
     // اذا كان الجدول خالي
     
    if (mysql_num_rows($sql_cat) < 1) die('no categories yet');
     
    // ان لم يكن خالي نقوم بتخزين القيم
     
    while($rows mysql_fetch_object($sql_cat))
     {
         
    // نقوم بتخزين القيم في المصفوفتين التاليتين
         // مفهرستان برقم معرف الاقسام
         
         
    $cats_title[$rows->cat_child_id]        = $rows->cat_name// اسم القسم
         
    $cats_parent_id[$rows->cat_child_id]    = $rows->cat_parent_id// رقم معرف القسم الذي ينتمي له القسم الحالي
     
    }
     
     
     
    // دالتنا التي ستقوم بعمل النيفبار
     
     // تحتوي على باراميتر واحد وهو رقم القسم
     
    Function check_cats_nav($id=''
     {
         
    // ان كان رقم القسم فاضي نقوم بارجاع قيمة false
         
    If(Empty($id)) Return False
         
    // نقوم باستدعاء وتعريف بعض المتغيرات التي ستفيدنا
         
    Global $cat_nav$cats_title$cats_parent_id
         
    // نقوم بفرز مصفوفة $cats_title لاستخراج رقم المعرف والاسم
         
    ForEach($cats_title As $cat_id => $title
         {
             
    // نضع شرط مفاده ان القسم الذي تم تمريره للداله ليس قسم رئيسي
             // وكذلك ان رقم المعرف الذي تم تمريره للداله يساوي رقم معرف القسم الذي تم فرزه
             
    If($cat_id==$id && $id!=0)
             {
                 
    // نقوم بتخزين رابط واسم القسم في المصفوفه التاليه
                 
    $cat_nav[] = "<a href=\"?cat_id=$cat_id\">$title</a> &rarr; ";
                 
    // نقوم باستدعاء الداله مرة اخرى مع تمرير رقم القسم الذي ينتمي اليه رقم القسم الذي سبق لنا ومررناه للداله
                 // ولذلك للتأكد من ان القسم الام لا ينتمي لاي قسم اخر اي انه قسم رئيسي والا نعيد عملية مرة اخرى حتى نصل الى اخر قسم رئيسي
                 
    check_cats_nav($cats_parent_id[$cat_id]);
             }
         }
     }
     
     
     
    // الان نقم بالاستعلام عن رقم المقاله التي طلبها الزائر ولتكن 1
     // ?art_id=1
     
     // نقوم بتخصيص متغير لرقم المقاله
     
    $art_id = (int) $_GET['art_id'];
     
     
    // نقوم بتجهيز الاستعلام
     
    $sql_art mysql_query("SELECT art_cat_id, art_title, art_content FROM articles WHERE art_id=$art_id");
     
     
    // اذا كان الجدول خالي او لا يحتوي على الرقم المطلوب
     
    if (mysql_num_rows($sql_art) < 1) die('article`s id wrong');
     
    // نقوم بتخزين قيم المقاله
     
    $rows            mysql_fetch_object($sql_art);
     
    // نخصص متغير لرقم القسم الذي تنتمي اليه المقاله
     
    $art_cat_id        $rows->art_cat_id;
     
    // نخصص متغير عنوان المقاله
     
    $art_title        $rows->art_title;
     
    // نخصص متغير لمحتوى المقاله
     
    $art_content    $rows->art_content;
     
     
    //نتأكد اولا ان القسم الذي تنتمي ايه المقاله هو قسم رئيسي ام فرعي
     
     // اذا كان قسم رئيسي فلا داعي لاستدعاء الداله
     
    if($cats_parent_id[$art_cat_id]==0)
     {
         
    $cat_nav "<a href=\"?cat_id=$art_cat_id\">".$cats_title[$art_cat_id]."</a>";
     }
     
    // اما ان كان قسم فرعي فنقوم باستدعاء الداله
     
    else
     {
         
    // نقوم اولا يتخزين القسم الذي ينتمي اليه المقاله المراد عرضها
         
    $cat_nav[] = "<a href=\"?cat_id=$art_cat_id\">".$cats_title[$art_cat_id]."</a> &rarr; ";
         
    // بعد ذلك نقوم باستدعاء الداله مع تمرير رقم القسم الذي ينتمي اليه القسم الحالي
         
    check_cats_nav($cats_parent_id[$art_cat_id]);
         
    // نقوم تجهيز متغير اخر
         
    $cat_nav2=(string)'';
         
    // نقوم بعملية تكرار عكسيه للمصفوفه
         // ولا نستطيع استخدام دالة عكس المصفوفه لان الفهرسه قد تحتوي على ارقام صغيره وكبيره.. وبالتالي لن تعطينا ترتيب صحيح
         
    For($i=count($cat_nav); $i>=0$i--) $cat_nav2.=$cat_nav[$i];
         
    // اخيرا نقوم تجهيز المتغير الاساسي ونضيع اليه عنوان المقاله التي نتصفحها حاليا
         
    $cat_nav $cat_nav2." <a href=\"?art_id=$art_id\">$art_title</a> &darr;";
     }  
     
     
     
    // واخيرا نقوم بعرض النيف بار
     
    echo $cat_nav;
     
     
    // ثم نعرض البيانات الاخرى.. في حالتنا سنقوم بعرض عنوان ومحتوى المقاله
     
    echo "<hr /> <h3>$art_title</h3> <p>$art_content</p>";
     
     
    ?>

    او يمكنك تحميل الملف من المرفقات

    وبالتوفيق للجميع





    الملفات المرفقة الملفات المرفقة
    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مشكور DSQ8.com .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jun 2008
    المشاركات
    54


    جزاك الله كل خير
    جارى التجربة






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jun 2008
    المشاركات
    54


    تعمل بكفائة
    جزاك الله كل خير وجعله فى ميزان حسناتك اخى الكريم






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    عزيزي jadweb.com

    الشكر لله ياغالي


    --------------


    عزيزي the net lion

    اللهم امين.. واجمعين ان شاء الله


    بالتوفيق





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Apr 2008
    المشاركات
    82


    مشكور يا معلم على الدرس الحلو جاري التجربة






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    الشكر لله ياغالي..

    ارجو ان تستفيد





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا|شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض