معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


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

الموضوع: كيفية عمل تعدد صفحات (تقسيم النتائج)

  1. #1
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    كيفية عمل تعدد صفحات (تقسيم النتائج)


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

    بكل بساطه و بدون تعقيد عملية تعدد الصفحات أو تقسيم النتائج معتمد علي شقين

    الاول هو ال sql و ده اسهل شيئ

    و الثاني هو ال php و ده برضوا سهل إن شاء الله

    الان نتكلم بشكل نظري انا عندي جدول مثلاً للمواضيع جيد

    و الجدول ده موجود فيه 75 موضوع

    و انا عايز اجلبهم في صفحتي بس بتقسيم النتائج من هذا الجدول الي عدة صفحات

    طيب حلو الكلام انا عايز بائه اظهر في كل صفحه 25 موضوع معنه كده إن هيطلع لي 3 صفحات

    لأنك لو قسمت 75 علي ال 25 يبقي النتيجه 3 حلو اوي كده

    هنا باقه يجي دور ال sql

    و دور التعليمه limit

    مثال عملي

    عندي جدول بأسم topic

    الان سأقوم بالاستعلام من هذا الجدول لجلب النتائج بالطريقه التقليديه


    كود:
    select * from `topic`

    طبعاً بالطريقه دي هيظهر كل محتويات الجدول هنا يجي دور التعليمه

    limit

    الان سنقوم بتقسيم النتائج الي 25 ننتيجه في الصفحه مثال


    كود:
    select * from `topic`    limit 0,25
    دلوقتي الاستعلام بدوره هيجلب 25 نتيجة من الجدول topic

    طيب كده باقي 50 نتيجه متقسمه الي صفحتين بخلاف الصفحه الاولي اللي فيها ال 25 نتيجه

    هقدر اجلبهم ازاي

    مثلاً لو حبيت اجيب الصفحه الثانيه


    كود:
    select * from `topic`    limit 25,25
    هيبدأ يجلب النتائج من بعد النتيجه رقم 25

    فيبدأ بالعرض من

    26

    الي

    50

    طيب لو عاوز اجلب الصفحه التالته




    كود:
    select * from `topic`    limit 50,25
    هيبدأ يجلب النتائج من بعد النتيجه رقم 50

    فيبدأ بالعرض من

    51

    الي

    75

    اظن ابتضحت الصوره طيب دلوقتي زائر الموقع إحتمال كبير إنه يكون مش بيعرف في استخدام ال sql


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

    يبقي هنا يجي دور ال php

    أول حاجه لازم نأمن المتغير الخاص برقم الصفحه بحيث لا يتم العبث به و إظهار نتائج غير مرغوب فيها

    تابع معايا


    كود PHP:


    $page 
    = (!isset($_GET['page']) ? intval($_GET['page']));/* 

    أولاً قمنا بالتحقق لو كان لم يتم تعريف المتغير في المتصفح سيأخذ من تلقاء نفسه  

    القيمه 1 اي سينلقنا الي الصفحه الاولى  

    و إن تم تعريفه في المتصفح سيأخذ قيمة نفسه 

    */ 

    $page =(intval($_GET['page'])<=$page );/* 

    و هنا قلنا لو كان المتغير اقل من أو يساوي 0 سيأخذ قيمة 1 أو إن كان غير ذلك سيكون نفسه 

    */ 
    كده إحنا أمنا المتغير $page الخاص بجلب الصفحات حتي لا يتم التحايل علي عملية جلب النتائج

    الان هل تتذكر معي ما قمنا بعمله في الجزء الخاص يال sql

    حان دوره و لكن عن طريق ال php

    دلوقتي نتكلم شويه نظري

    انا حالياً طلبت الصفحه الثانيه جيد و اريد جلب النتائج الخاصه بها

    من البديهي ان يكون المتغير page في المتصفح يحمل القيمه رقم 2

    الان نريد ان يكون رقم الجلب 25 ليجلب من المواضيع التي من بعد 25 الي 50

    توضيح يعني في استعلام ال sql تكون التعليمه limit بهذه الطريقه


    كود:
    limit 25,25
    25 هي عدد النتائج المراد عرضها في المصفحه

    25 لجلب النتائج اللي في الصفحه الثانيه



    جيد الان كما ذكرت انا في الصفحه رقم 2 و عايز اوصل الي الرقم خمسين

    يبقي اضرب رقم الصفحه الي عدد النتائج المراد جلبها في الصفحه الواحده


    كود PHP:
    $limit=$page*25
    هنصل علي 50 لأننا في الصفحه رقم 2 ثم نقوم بطرح قيمة عدد النتائج في الصفحه الواحده من ناتج الضرب

    ليصبح الكود كالتالي


    كود PHP:
    $limit=($page*25)-25
    جيد جداً الان ما ريد بوضع قيمة كمية النتائج في الصفحه الواحده في متغير أليس هذا افضل


    كود PHP:


    $numpage
    =25;//متغير عرض النتائج في الصفحه الواحده  



    $limit=($page $numpage) - $numpage
    الان سنقوم بالتعديل علي الاستعلام ليصبح معتمد علي المتغيرات و ليس الارقام المباشره


    كود PHP:
    <? 


    //الاستعلام الخاص بجلب البيانات من الجدول 

    $sql=mysql_query("select * from `topic` limit  $limit,$numpage "); 



    // التأكد من وجود صفوف في الجدول 
     
    if(!mysql_num_rows($sql)) 
     { 
            echo   
    'لا توجد بيانات'

     } else{ 
    while(
    $arr=@mysql_fetch_array($sql)) 


    // طباعة محتويات القاعده 










    ?>

  2. #2
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: كيفية عمل تعدد صفحات (تقسيم النتائج)


    الان و بعد ان قمنا بعمل تقسيم للنتائج القادمه من قاعدة البيانات



    سنقوم بإظهار ارقام الصفحات الناتجه من الاستعلام علي هذا الجدول




    كود PHP:
                           <?php 




    $page 
    = (!isset($_GET['page']) ? intval($_GET['page'])); 

    $page =(intval($_GET['page'])<=$page ); 





    $numpage=2;//متغير عرض النتائج في الصفحه الواحده 



    $limit=($page $numpage) - $numpage

    //الاستعلام الخاص بجلب البيانات من الجدول 

    $sql=mysql_query("select * from `topic` limit  $limit,$numpage "); 



    //تكملة الكود بجلبه علي شكل مصفوفه في تكرار 






    while($arr=@mysql_fetch_array($sql)) 


    echo 
    $arr['text'].'<br>'













    $numbers=ceil(mysql_num_rows(mysql_query("select id  from `topic` "))/$numpage); 



    $i=

    while(
    $i<$numbers



    ++
    $i


    if(
    $page<>$i)$n="<a href=\"?page=$i\">$i</a>"

    else 



    $n="$i"





    echo 
    $n















    ?>

 

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

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