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

الموضوع: درس : دالة php لعمل مسار الطريق Bread Crumbs

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

    Arrow درس : دالة php لعمل مسار الطريق Bread Crumbs



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

    كيف حالكوا ان شاء الله خير ؟؟ كيف انتوا ورمضان ؟؟ كلو تمام ؟؟ الي ما بصوم يطلع من الموقع بسرعة … حتى كمان شوي بدي ابني دالة تعرف اذا الي فايت على الموقع صايم او لا … اذا مش صايم بتعملو طرد اوتوماتيكي !! مش تسدقوا بمزح

    المهم يا جماعة اليوم درسنا حلو كثير وفيو شرح لكيفية عمل وبناء دالة بلغة php وظيفتها تعمل مسار الطريق Bread Crumbs لأي صفحة موجود بالسكربت او البرمجية الي عندك … وعشان تزبط هيك دالة لازم تتوفر بعض الشروط البسيطة .

    هذا الدرس للمتسوى المتقدّم في لغة php وفيه سنشرح كيفية بناء هذه الدالة مع مثال مفصل لطريقة استدعائها .


    في البداية اخواني اخواتي نقوم ببناء جدول قاعدة البيانات الذي سيكون احد نجوم هذا الدرس … نفرض ان لدينا سكربت للاخبار وفيه وكل خبر يتم اضافته يجب ان ينتمي لاحد اقسام الموقع … وبذلك نعم اننا بالضرورة نملك جدول للاقسام … في هذا الجدول سنقوم باضافة 3 حقول ضرورية للعمل عليها والتي ستقوم بتشغيل دالة مسار الطريق .

    الحقول التي نحتاجها في قاعدة البيانات :

    1- حقل رقم القسم id من نوع int
    2- حقل رقم القسم الاب parent من نوع int
    3- حقل اسم القسم من نوع varchar

    ملاحظة : الحقل parent سيحوي القيمة 0 بحالة كان القسم هو قسم رئيسي اي انه لا يتبع لقسم آخر .

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

    كود PHP:
    function Gpath($cid$pathArray = array()){
    if(
    $cid !== “0″){
    $sql mysql_query(”select c_id,c_sub,c_parent,c_title from category where id=$cid”);
    if(
    mysql_num_rows($sql) == 1) {
    $row mysql_fetch_assoc($sql);
    array_unshift($pathArray$row);
    return 
    Gpath($row['c_sub'], $pathArray);
    }
    }
    return 
    $pathArray;

    طريقة الاستدعاء :

    كود PHP:
    // هو متغير رقم القسم الذي نريد جلب مسار الطريق المؤدي اليه $id
     
    $path Gpath($id);
    foreach(
    $path as $item) {
    echo 
    ” > <a href=’cats.php?id=$item[c_id]>$item[c_title]</a>;

    شرح الدالة :

    في البداية حبايبي نقوم باستدعاء الدالة عن طريق امر الاستدعاء والذي يجب ان ندخل اليه رقم القسم المراد جلب مسار الطريق الذي سؤدي اليه … وثم نقوم باستخراج النتائج من المصفوفة التي قامت الدالة بتوليدها عن طريق foreach .

    في بداية عمل الدالة نقوم بادخال البارمترات التي سنقوم بمعالجتها … وهنا في هذه الدالة سنقوم بمعالجة برامتر رقم القسم اما البارمتر الثاني فهو عبارة عن مصفوفة array والتي ستكون فارغة في بداية تنفيذ الدالة .

    في السطر الثاني للدالة سوف نتحقق من ان رقم القسم الذي قمنا بادخاله لا يساوي 0 … لانه ان كان كذلك فانه سيكون قسم رئيسي وبالتالي فانه لا يتبع لأي قسم اخر وهذا يعني اننا لا نحتاج لعمل مسار الطريق بحالة كان المستخدم في صفحة القسم الرئيسي .

    في السطر الثالث قمنا بالاستعلام من قاعدة البيانات عن رقم وعنوان ورقم القسم الاب للقسم الذي سوف تعالجه الدالة وقمنا بتحديد الاستعلام بواسطة cid$ وهو رقم القسم … في السطر الرابع نقوم بالتأكد من ان نتائج معينة قد نتجت من هذا الاستعلام فاذا كانت نتيجة الشرط 1 .. اي ان هناك نتيجة واحدة لهذا الاستعلام فانه سينتقل لتنفيذ السطر الخامس .

    في السطر الخامس تقوم الادالة باستخراج الحقول التي قمنا بالاستعلام عنها على شكل مصفوفة وهذا بفضل استعمال mysql_fetch_assoc .

    في السطر السادس نقوم باستعمال الدالة array_unshift ووظيفة هذه الدالة هي دمج اكثر من مصفوفة في مصفوفة واحدة واخر مصفوفة تدخل اليها هي الاولى في الترتيب عند استخراج بيانات المصفوفة .

    في السطر السابع نقوم باستدعاء الدالة Gpath بالكامل … اي اننا قمنا باستدعاء الدالة من داخل نفسها اي ان الدالة تقوم باستدعاء نفسها ذاتيا لتقوم باستخراج جميع اسماء الاقسام التي يتبع لها القسم الهدف بالتسلسل وهذا الامر يولد لنا مسار الطريق .

    اسلوب الاستدعاء الذاتي للدالة او Recursive Functions بالانجليزية سنقوم بالحديث عنه لاحقا في موضوع وشرح منفصل .

    في السطر الثامن والتاسع قمنا باغلاق حالات الشرط التي قمنا باستخدامها اما في السطر العاشر فقمنا بارجاع قيمة المصفوفة التي تحوي مسار الطريق وفي السطر الحادي عشر اغلقنا الدالة .

    وفي النهاية اخواني اتمنى انني قد افدت من كان يبحث عن الفائدة في هذا المجال واتمنى عدم التردد من قبلكم بحالة كان هناك اي سؤال او استفسار حول هذا الموضوع او اي موضوع اخر في المدونة .


    اخوكم EbNCaNa


    الموضوع الاصلي :http://ebncana.wordpress.com/?p=186


    سلامات ورمضان كريم .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟




  2. الله يعطيك العافيه اخوي EbNCaNa

    دالة يحتاجها الكثير في برامجهم

    لا هنت





    __________________
    -----------------------------------------------------------
    :: همـ المشاعر ــس :: عبد الله :: للتصميم و التطوير ::
    http://www.mr-sa.com
    -----------------------------------------------------------

  3. #3
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431





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

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

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