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

الموضوع: عرض الاقسام الفرعية بهذا الشكل؟

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280

    عرض الاقسام الفرعية بهذا الشكل؟



    السلام عليكم
    اخواني اهل سوالف .. اهل الكرم
    عندي جدول مكون من ثلاثة اعمدة
    id,parentid,title
    بالطبع يستخدم في عرض اقسام واقسام متفرعه منها الى مالانهاية وقد نجحت في طريقة الوصول للاقسام الفرعية والمتفرعه الخ..
    اذا كنت وصلت مثلا الى المستوى السادس فكيف يمكننى عرض اسماء الاقسام بالتسلسل مثل "سوالف سوفت > لغات البرمجة > لغات برمجة المواقع > اسم الموضوع "؟؟





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280


    لقد توصلت الى الحل بفضل من الله
    واشكر الاخ المهمه 9 بالرغم من انى لم اطبق فكرته





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2002
    المشاركات
    2,289


    اتمنى تعطينا الحل وتطبق الفكره اخي الكريم






  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    الرجاء وضعها هنا لتعم الفائدة على الجميع اخي وجزاك الله خيراً





    __________________
    مدونتي | تويتر


  5. #5
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280


    السلام عليكم
    الفكره التى كنت ابحث عنها .. كيف اعرض شجرة الاقسام بهذا الشكل وباجراء استعلام واحد فقط يكرر نفسه اذا لم يتحقق شرط معين
    بافتراض ان رقم القسم الرئيسي =200
    كود:
    <table ><tr><?
    
    for($pp=$parent;$pp!=200;){
       $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ")
    or die("can't get the table");
     $rows=mysql_fetch_array($shows);
       $pp=$rows[ParentID];
     echo "<td>..<a href='subj.php?view=subj&subid=$rows[ID]&subpartid=$rows[ParentID]'>$rows[Title]</a></td> ";
    } ?></tr></table>
    لقد قمت باستخدام الجدول لكي اعرض شجرة التصنيف بالشكل الصحيح اي
    سوالف سوفت > لغات البرمجة > لغات برمجة المواقع > عرض الاقسام
    اذا لم استخدم الجدول ستظهر النتائج بالعكس
    عرض الاقسام<لغات برمجة المواقع ... الخ
    ولكن يبقى لاستخدام الجدول عيب وهو اذا زاد عرض الخلايا بسبب كبر حجم اسماء المواضيع فانه يظهر بشكل سئ
    نرجو من الاخوة حل هذه المشكلة واظهار النتائج بالترتيب التنازلى
    وجزاكم الله خيرا





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280


    هذه الدالة كاملة ونرجو من لديه فكره الحل للمشكلة التى طرحتها باعلى ان يتفضل

    كود:
    function subfiles($parentID){
    echo"<table ><tr>";
    
    for($pp=$parent;$pp!=200;){
       $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ")
    or die("can't get the table");
     $rows=mysql_fetch_array($shows);
       $pp=$rows[ParentID];
     echo "<td>..<a href='subj.php?view=subj&subid=$rows[ID]&subpartid=$rows[ParentID]'>$rows[Title]</a></td> ";
    } 
    echo"</tr></table>";}

    شئ اخر انظروا الى هذه القائمة المتفرعه
    http://islamqa.com/index.php?pg=tree&ln=ara
    اعلم انه كود جافا ولكن هل يمكن دمجة بالبي اتش بي بحيث يعرض بهذا الشكل
    انا استطيع عملها ولكن هذا يتطلب اداء استعلامات كثيرة جدا
    اي انه يقوم باداء جميع الاستعلامات دفعه واحده ثم يعرضهم مخفيين الى ان نقوم بالضغط على التنيف فيظهرهم
    هل توجد طريقة لعمل الاستعلام الخاص بالقسم الذي اضغط عليه فقط ؟؟





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


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


    اخوك





    __________________
    مدونتي | تويتر


  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2003
    المشاركات
    461


    اخي الكريم فكرة الدالة التالية مقتبسة من مجلة Nuke

    لكن ملاحظة اذا زاد عدد الاقسام الفرعية اقصد التفرع فانه سوف يزيد عدد الاستعلامات وبالتالي في نظري غير عملية اذا كان عندك عدد التفرعات كبير ..

    كود PHP:

    function getCategories($catid$title)
    {
            
    $sql mysql_query("SELECT id, title, parentid FROM links_categories WHERE id='$catid'");
            list(
    $parent_id$parent_title$parent_parentid) = mysql_fetch_array($sql);
            
    mysql_free_result($sql);

            if (
    $parent_title != ''$title $parent_title.' -> '.$title;
            if (
    $parent_parentid != 0$title getCategories($parent_parentid$parent_title);

            return 
    $title;







    __________________
    AlwatanVoice, www.alwatanvoice.com
    Almashroo, www.almashroo.com

    Pal Coder == Palestinian Coder

  9. #9


    بالنسبة لعكس الترتيب أسهل طريقة أن تقوم بالتخزين بدل الطباعة في مصفوفة وبعدها تطبعها بالإتجاه الذي تريده، وهذه هي الدالة مع الإضافة لكني لم أجربها وأتمنى أن تكون صحيحة 100%:

    كود PHP:
    <?php
    function subfiles($parentID)
    {
        
    $Counter=0;  // أضفت هذا السطر
        
    for($pp=$parent;$pp!=200;)
        {
            
    $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ") or die("can't get the table");
            
    $rows=mysql_fetch_array($shows);
            
    $pp=$rows['ParentID'];
            
    // عدلت السطر التالي من طباعة إلى تخزين في مصفوفة
            
    $arrTD[$Counter++]='<a href="subj.php?view=subj&subid='.$rows['ID'].'&subpartid='.$rows['ParentID'].'">'.$rows['Title'].'</a>';
        }
        
        
    // أضفت السطرين التاليين للطابعة من خلال قراءة المصفوفة بالإتجاه التنازلي
        
    for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--)
        {
            if(
    $Counter!=0)
                echo 
    $arrTD[$Counter].' &gt; ';
            else
                echo 
    $arrTD[$Counter];
        }
    }
    ?>






    التعديل الأخير تم بواسطة WebDeveloper ; 04-10-2006 الساعة 02:22 PM سبب آخر: تحويل الطباعة من داخل الجدول إلى شكل الشريط

  10. #10


    اقتباس المشاركة الأصلية كتبت بواسطة WebDeveloper
    كود PHP:
    // أضفت السطرين التاليين للطابعة من خلال قراءة المصفوفة بالإتجاه التنازلي 
        
    for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--) 
        { 
            if(
    $Counter!=0
                echo 
    $arrTD[$Counter].' &gt; '
            else 
                echo 
    $arrTD[$Counter]; 
        } 
    استخدم
    كود PHP:
     $arrTDarray_reverse($arrTD); 






    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280


    اخي almosmm بانتظارك وجزاكم الله خيرا
    اخي Pal Coder نعم هذه مشكلة كثرة الاستعلامات وانا قلت انى استطيع عملها ولكنها ستقوم بالاستعلامات كلها مرة واحده .. في حين اننا نريد ان تقوم بالاستعلام المطلوب عند الضغط على عنوان التصنيف مثلا ..
    اخي WebDeveloper لم تعمل معي بارك الله فيك ارجو وضع حل اخر
    اخي رياض القرآن بارك الله فيك وجزاكم الله خيرا ودالة جميلة فعلا لكنها ايضا لم تعمل معي



    كود:
    <?php
    function subfiles($parentID)
    {
        $Counter=0;  
        for($pp=$parent;$pp!=200;)
        {
            $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ") or die("can't get the table");
            $rows=mysql_fetch_array($shows);
            $pp=$rows['ParentID'];
            
            $arrTD[$Counter++]='<a href="subj.php?view=subj&subid='.$rows['ID'].'&subpartid='.$rows['ParentID'].'">'.$rows['Title'].'</a>';
        }
    
     $arrTD= array_reverse($arrTD);
    echo $arrTD;
    }
    ?>
    [مع العلم انى وضعت
    كود:
       echo '<pre>';
    print_r($arr);
    echo '</pre>';
    فاعطت النتيجة الايجابية ولكن لم تظهر النتيجة باستخدام الدالة





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com

  12. #12


    هذا السطر:
    كود PHP:
    echo $arrTD
    سيطبع كلمة Array والسبب إن قاعد تطبع مصفوفة دون أن تحدد الفهرس حقها "Index"

    فيفترض أن تضعها في لوب للطباعة

    كود PHP:
        for($Counter=0;$Counter<count($arrTD);$Counter++) 
        { 
            if(
    $Counter!=(count($arrTD)-1)) // حتى لا يضيف رمز الأكبر من في بعد اسم الموضوع
                
    echo $arrTD[$Counter].' &gt; '
            else 
                echo 
    $arrTD[$Counter]; 
        } 
    وبالمناسبة ماذا كانت نتيجة الدالة التي قمتُ بوضعها؟

    بالنسبة للأخ رياض القرآن ، دالة عكس فهرس المصفوفة جداً رائعة وأهو تريحنا من التفكير بالمقلوب، لكن بالطبع الطريقة الأولى أسرع في التشغيل - إذا كنا راح نتكلم بالملي سكندز
    ومشكور على كل حال على الإضافة القيمة

    تحياتي






  13. #13


    اكتشفت الخلل في الدالة التي كتبتها:

    في اللوب الأخير:
    كود PHP:
    for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--) 
    استبدله بـ
    كود PHP:
    for($Counter=count($arrTD)-1;$Counter>=0;$Counter--) 
    المصفوفة $arrTD كتبت أول حرف فيها بالكبير وكما تعلم لغة PHP لغة تفرف بين حالة الحروف الكبيرة والصغيرة case-sensitive
    وذلك أدى لتجاوز اللوب وعدم تنفيذه !.

    ربما من الأفضل استخدام التعديل السابق على دالة الأخ رياض القرآن فهي أسهل في تتبع الأخطاء

    تحياتي






  14. #14
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    280


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

    بقي سؤال وهو عن القائمة التى بالشكل
    مثل هذا
    http://www.binbaz.org.sa/index.php?pg=cat&id=0
    هل يتم تكوينها يدويا ام هناك طريقة لعملها ديناميك بدون اجراء كل الاستعلامات دفعه واحده
    اي يتم اجراء الاستعلام عند الضغط على تصنيفه فقط





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    العضوية يستخدمها اكثر من شخص
    Nabeel A. Galal
    Hawk Eye
    nabeel.galal AT hotmail.com





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

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

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