وفاة الاخ العزيز رفيع العتيبي مبرمج البوابة       مايكروسوفت تصدر تحديثا لسد ثغرات (ويندوز)       فايسبوك يطلق نسختين عربية وعبرية       خبراء الأمن اكتشفوا ثغرة أمنية في برنامجي (أدوبي ريدر) و(أكروبات)       سامسونغ تكشف عن هاتف يعمل بالسولار       باناسونيك تحدث حاسب ToughBook 52       برنامج حماية نظام التشغيل الجديد ويندوز 7       عرضت مايكروسوفت مكافأة قدرها 250 الف دولار من أجل العثور على من يقف وراء فيروس الكمبيوتر داونادوب/ ك       يستخدم iDrive للنسخ الاحتياطي للمحتويات. ويتميز بأنه أنحف وأقل محرك USB متنقل وزنًا       توزيعة "اوبونتو" لنظام "لينوكس"    
 
       القائمة الرئيسية
   
       محرك البحث
 




بحث متقدم
 

     أهم الاخبار

  • وفاة الاخ العزيز رفيع العتيبي مبرمج البوابة
  • باناسونيك تحدث حاسب ToughBook 52
  • برنامج حماية نظام التشغيل الجديد ويندوز 7
  • عرضت مايكروسوفت مكافأة قدرها 250 الف دولار من أجل العثور على من يقف وراء فيروس الكمبيوتر داونادوب/ ك
  • يستخدم iDrive للنسخ الاحتياطي للمحتويات. ويتميز بأنه أنحف وأقل محرك USB متنقل وزنًا
  • توزيعة "اوبونتو" لنظام "لينوكس"
  • نظام «ويندوز كلاود».. تحد كبير من «مايكروسوفت»
  • مايكروسوفت تستعد لطرح "ويندوز 7" خلفاً لـ "فيستا"
  • نسخة أفضل من برنامج الحماية ويندوز
  • الامارات تحد من قرصنة البرمجيات
  • «مايكروسوفت» تنقض على «ياهو»
  • الجرائم الإلكترونية تقلِق العرب
  • الدول الأوروبية تزرع فيروسات للتنصت على مستخدمي الإنترنت
  • "الاتصالات السعودية" توقع اتفاقية لإنشاء الكابل البحري القاري
  • إنقطاع كيبل إنترنت يؤدي الى عطل في الشرق الأوسط
  • مايكروسوفت تحذر من ثغرة أمنية ببرنامج إكسيل
  • أبل ستعتنق منصة مينلو ميد
  • غيتس: عصر «الحواس الرقمية» آتٍ
  • هل تختفي لوحة المفاتيح "والماوس" من الكومبيوتر؟
  • التحويل إلى مجلة البوابة العربية
  •  
     
           تسجيل الدخول
     


    المستخدم
    كلمة المرور

    إرسال البيانات؟
    تفعيل الاشتراك
     
           إحصائيات
      عدد الاعضاء: 20837
    مشاركات الاخبار: 120
    مشاركات المنتدى: 10072
    مشاركات البرامج : 89
    مشاركات التوقيعات: 157
    مشاركات المواقع: 1313
    مشاركات الردود: 45525
     
           المتواجدون حالياً
      المتواجدون حالياً :9
    من الضيوف : 8
    من الاعضاء : 1
    عدد الزيارات : 4928336
    عدد الزيارات اليوم : 1286
    أكثر عدد زيارات كان : 48614
    في تاريخ : 30 /05 /2008
     



    البوابة العربية » الأخبار » دروس تطبيقية


    تعدد الصفحات ( ط 3 )


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

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

    تذكير بدروس الماضية
    [LINK]http://www.arabportal.info/news.php?action=view&id=9|تعدد الصفحات (1 )[/LINK]

    [LINK]http://www.arabportal.info/news.php?action=view&id=17|تعدد الصفحات ( 2)[/LINK]
    الدرس
    نجري الاتصال بقاعدة البينات لكي نتمكن من استعلامها.
    الان نبدأ في الأستعلام

    PHP

    <?php
    $result 
    mysql_query("SELECT * FROM rafia_forum WHERE id='$id'");
    ?>


    هذا الاستعلام  يستخرج  سجل من الجدول rafia_forum
    وهو الذي تمت التجربة عليه .
    يحدد هذا السجل رقمة التسلسلي  وهو المتغير id
    بدل هذا المتغير  برقم احد السجلات الموجودة في قاعدت بيناتك  وقم بتعديل اسم الجدول

    الان نقوم بستخراج كل الحقول الموجودة في هذا السجل
    بهذا السطر

    PHP

    <?php
    $row 
    mysql_fetch_array($result);
    ?>



    قبل معالجة  البينات نتاكد من ان القيمه لعدد الاسطر موجودة , أن لم تكن  تاخذ القيمة صفر

    PHP

    <?php
    if(!isset($line)){$line 0;}
    ?>


    بعد ذلك نضع متغير  يحمل قيمة  عدد الاسطر في كل صفحة

    PHP

    <?php
    $perpage 
    "10";
    ?>



    ثم نقوم بتحرير  الحقل الذي نريد تقسيمة لعدة اسطر من المقبض row
    PHP

    <?php
    $post 
    $row["post"];
    ?>



    والان نقوم بتقسيم  هذا الحقل إلى اقسام بحسب عدد الاسطر
    PHP

    <?php
    $expline 
    explode("n",$post);
    ?>


    استخدمنا الدالة explode في التقسيم على اساس
    n \ حرف السطر الجديد هو غير مرئي  لكنه ياتي في نهاية كل سطر معبرا عن بداية سطر جديد
    ووضعنا الناتج من التقسيم في مصفوفة : expline
    تذكير
    explode  تقوم بتقسيم السلسلة وتحويلها الى مصفوفة .

    الان نقوم بحساب عدد عناصر المصفوفة بستخدام الدالة
    count
    PHP

    <?php
    $countlin 
    count($expline);
    ?>


    countlin  هو المتغير الذي حفظنا فيه  مجموع عدد الاسطر
    الان نقوم بتجهيز العملية الحسابية  في تقسيم الصفحات
    ( راجع الدرس الاول )
    PHP

    <?php
    //تعيين رقم الصفحة السابقة  بناء على عدد الاسطر
    $previouspage $line $perpage;
    //تعيين رقم الصفحة التالية
    $nextpage $line $perpage;
    ?>


    إلى  هنا  جهزنا  جميع المتغيرات التي سوف تساعدنا في تقسيم العرض

    نبدأ في التقسيم
    نقوم بعرض الاسطر انطلاق من نقطة معينة في المتغير line  وحتى نقطة نهاية معينة في المتغير  nextpage
    مستخدمين في ذلك حلقة التكرار for

    PHP

    <?php
    for ( $i $line$i$nextpage$i++)
    {
        echo"$expline[$i]<br>";
    }
    ?>


    ملاحظة
    اثناء الطباعة تجد <br> في النهاية  وهي شرط اساسي لنجاح العملية  اما في البداية او النهاية لنك لن تطر لستخدام الدالة nl2br  . السبب لان التعامل مع مصفوفة
    اعني مقسمة في اسطر جاهة

    انتهينا ولم يبقى الى اظهار كلمة السابق والتالي
    مستخدمين في ذلك اربع شروط  تم شرحها في الدرس الاول
    PHP

    <?php
    if(($line 0) || ($countlin > ($line $perpage)))
    {
        echo "<p align=center>";
    }
    if(
    $line 0)
    {
        echo "<a href=$PHP_SELF?line=$previouspage><<السابق</a>n";
    }
    if(
    $countlin >($line $perpage))
    {
        echo "<a href=$PHP_SELF?line=$nextpage>التالي>></a>n";
    }
    if((
    $line 0) || ($countlin > ($line $perpage)))
    {
        echo "</p>";
    }
    ?>



    راجع الدرس الاول
    http://www.arabportal.info/news.php?action=view&id=9


    اخيرا  تفضلوا المثال  الذي نجح في التجربة
    PHP

    <?php
    $dbuser
    ="";
    $dbpword="";
    $dbserver="localhost";
    $dbname="rafiaphp";
    echo 
    "<HTML DIR=RTL LANG=AR-SA>";
    function 
    dbconnect(){
    global 
    $dbserver $dbuser $dbpword $dbname ;
    $result mysql_pconnect("$dbserver""$dbuser""$dbpword");
    if (!
    $result)
     return 
    false;
    if (!
    mysql_select_db("$dbname"))
     return 
    false;
     return 
    $result;
    }
    dbconnect();
    $result mysql_query("SELECT * FROM rafia_forum WHERE id='29'");
    $row mysql_fetch_array($result);
    if(!isset(
    $line)){$line 0;}
    $perpage "10";
    $post $row["post"];
    $expline explode("n",$post);
    $countlin count($expline);
    $previouspage $line $perpage;
    $nextpage $line $perpage;
    for ( 
    $i $line$i$nextpage$i++)
    {
        echo"$expline[$i]<br>";
    }
    if((
    $line 0) || ($countlin > ($line $perpage)))
    {
        echo "<p align=center>";
    }
    if(
    $line 0)
    {
        echo "<a href=$PHP_SELF?line=$previouspage><<السابق</a>n";
    }
    if(
    $countlin >($line $perpage))
    {
        echo "<a href=$PHP_SELF?line=$nextpage>التالي>></a>n";
    }
    if((
    $line 0) || ($countlin > ($line $perpage)))
    {
        echo "</p>";
    }

    ?>



    المشاركة السابقة : المشاركة التالية
    الكاتب: مختار دياب
     مراسلة موقع رسالة خاصة
    [بتاريخ : الثلاثاء 15-06-2004 01:01 مساء ]



    تسلم اخي رفيع


    -------------------------------------
    مجموعة بي اتـــــــ PHP Yemen ــــش بي اليمن



           الحكمة العشوائية
     
    مَـنْ أهَـانَ مـَاله أكـرمَ نفسـَه. ‏
     
           القائمة البريدية