Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

كيفة ترقيم صفحات البيانات مع php

by
Difficulty:IntermediateLength:LongLanguages:

Arabic (العربية/عربي) translation by eman (you can also view the original English article)

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

بالنسبة للذين لديهم قاعدة بيانات و معرفة بسيطة  بالبرمجة فان رؤية صفوف الجداول تظهر على الشاشة بناء على الشفرة التي كتبته , لذلك قمت بنسخ مثال من كتاب  (lets not split hairs) ]فقد ساعدني كثيرا. قد لا أكون فهمت السر وراء اتقان  العمل في ذلك الوقت ، لكن هذا النجاح الأول دفعني إلى  انجاز مشاريع أكبر وأفضل

في حين أن مستواى وفرة قواعد البيانات لدي  قد لا يكون كما كان في السابق 
مند اول لقاء لي " مرحبا بالعالم" , لقد كنت مدمنا
على قوة جعل الأشياء بسيطة وسهلة الاستخدام.

كوني مطور ، هناك مشكلة أواجهها باستمرار وهي أخذ كمية كبيرة من المعلومات وجعلها سهلة الفهم إذا كانت قائمة عملاء شركة كبيرة أو كتالوج mp3 الشخصي ، فعلي الجلوس والتحديق في الصفوف و بين الصفوف وعلى صفوف البيانات مما يجعل انجاز المهمة محبطا
ومثبطا ما الذي يمكن أن يفعله المطور الجيد؟ ترقيم الصفحات


ترقيم الصفحات

ترقيم الصفحات هو في الأساس عملية الحصول على مجموعة من النتائج و تحقيق الانتشار
لجعلها اسهل للعرض

example 1

أدركت في وقت مبكر أنه  ليس كافي ان يكون  لدي 5000 صفحة من المعلومات لعرضها 
يمكن تسبب المحاولة والقراء الصداع للشخص ، ولكن معظم المتصفحات سوف تستغرق 
وصول للانترنت اكثر من 5 ثواني للعرض 

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

كلمة سريعة عني و عن طبقات PHP انا لست خبيرا باستهداف الاشياء في الواقع ، بالكاد
استخدم الاشياء مثلما كنت في الماضي ولكن بعد قمت  بقراءة بعض الأمثلة OOP والدروس ، 
وبعض الأمثلة البسيطة علن التجربة والخطأ ، قررت أن ان اجرب ،وأنت تعرف ماذا؟
انه يعمل بشكل ممتاز مع الترقيم الكود المستخدم هنا مكتوب بلغة PHP 4 ,لكنه 
يعمل مع PHP5


قاعدة البيانات

عليكم ان تحبوا MySQL ليس لسوء في انظمة البيانات الاخرى , ولكن 
بالنسبة لي كل ما ارغبه هو MySQL ومن اهم الميزات المستقبلية ل MySQL  انه يمنحك
قاعدة بيانات لاستخدامها كعينة

بالنسبة  للأمثلة الخاصة بي ، سأستخدم قاعدة البيانات العالمية (~ zd zip) التي تحتوي على أكثر من
4000 سجل لتجرب بها، لكن مميزات نص PHP الذي سننشئه 
انه يمكن استخدامه مع اي قاعدة بيانات الان اعتقد اننا يمكننا جميعا ان نتفق انه في حال قررنا
ليس لفرز  نتائجنا حيث قد ينتهي بنا الأمر إلى 
نتائج نتائج طويلة وغير عملية كالتالي

example 2

اضغط على الرابط  لروية الصورة بالحجم المكبر 

هيا نجزء  البيانات لدينا لتصبح اكثر سهولة وفهما

example 3

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


مرقم الصفحات

سيتكون هذا المثال من برنامجين نصيين ، فئة الفواصل الزمنية القابلة لإعادة الاستخدام وملف الفهرس الذي سيعرض عناصر الجدول وعناصر التحكم

مرقم الصفحات فئة php

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

هذا التعريف يحدد فقط المتغير المطلوب للمرقم ، حيث أن هذا هو فئة مساعد ، وموجه ل عملية الترقيم  فقط يعتمد على اتصال صحيح بخادم MySQL واستعلام محدد بالفعل سنقوم بإلحاق العامل المتغير الضروري لترقيم النتائج. سنبدا بالاسلوب الانشائي


بسيط جدا , اليس كذلك؟ تقوم هذه الطريقة فقط بتعيين اتصال قاعدة بيانات الهدف والاستعلام الضروري ، بعد ذلك تقوم بحساب العدد الإجمالي للصفوف التي تم استردادها بواسطة هذا الاستعلام دون أي حدود أو تخطي للمتغيرات ، هذا المجموع ضروري لإنشاء روابط للمخطط

لاحظ أنه بالنسبة إلى البساطة ، فإننا لا نقوم بفحص الأخطاء أو صحة  المتغيرات ، ولكن في التطبيق الواقعي ، ستكون هذه الفحوصات ضرورية .

استرجاع النتائج

لنقم الآن بإنشاء الطريقة التي تقوم بالفعل بترقيم البيانات وإسترجاع النتائج.

هيا نحلل هده الخطوة ، أولاً نقوم بتعيين معلمات الحد والصفحة ، والتي يتم تعيينها بشكل افتراضي على 10 و 1 على التوالي. نتحقق مما إذا كان المستخدم يتطلب عددًا معينًا من الصفوف أو جميعها ، استنادًا إلى هذا و  لمعلمة الصفحة  وقمنا بتعيين معلمة LIMIT للاستعلام ، فإن "- 1" من الصفحة تأخذ في الاعتبار حقيقة أننا نبدا الصفحات من  1 بدلاً من 0.

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

عرض روابط ترقيم الصفحات 

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

هذه الطريقة طويلة نوعًا ما ، حوالي 34 سطرًا من الكود ، لذلك دعونا الآن نوضح ما يجري في هذه الطريقة.

  1. أولاً ، نقوم بتقييم ما إذا كان المستخدم يتطلب عددًا معينًا من الارتباطات أم جميعها ، في الحالة الثانية  لن يكون هناك حاجة إلى ترقيم الصفحات.
  2. بعد ذلك نقوم بحساب آخر صفحة بناءً على العدد الإجمالي للصفوف المتاحة و ايضا العناصر المطلوبة لكل صفحة.
  3. ثم نأخذ معلمة الارتباطات التي تمثل عدد الارتباطات التي يتم عرضها أسفل وفوق الصفحة الحالية  ، وثم قم بحساب ارتباط البداية والنهاية .
  4.  نحن  الان ننشئ علامة البداية للقائمة وتأسيس صنفها بمعلمة فئة القائمة وإضافة رابط "الصفحة السابقة" ، ولاحظ أنه بالنسبة لهذا الرابط نتحقق مما إذا كانت الصفحة الحالية هي الأولى ، وإذا كان الأمر كذلك ، فسنقوم بتعيين خاصية تعطيل الارتباط.
  5. في هذه المرحلة ، نقوم بعرض  رابطًا  للصفحة الأولى ورمز علامة حذف في حالة أن رابط البدء ليس هو الأول.
  6. ثم ، نضيف الروابط أسفل وفوق الصفحة الحالية استنادًا إلى معلمات البدء والانتهاء المحسوبة مسبقًا ، وفي كل خطوة نقوم بتقييم الصفحة الحالية مرة أخرى ، ووفقا  لذلك يتم عرض صفحة الارتباط وتعيين الفئة النشطة .
  7. بعد ذلك ، نقوم بعرض  رمزًا آخر لعلامة القطع ورابط الصفحة الأخيرة في حال لم يكن الرابط هو الأخير.
  8. وأخيرًا ، نقوم بعرض رابط "الصفحة التالية" ونضبط حالة التعطيل عندما يشاهد المستخدم الصفحة الأخيرة ، ويغلق القائمة ,ويعيد سلسلة HTML التي تم إنشاؤها.

هذا كل ما في الأمر ، بالطبع يمكننا أن نضيف عوامل الضبط وgetters عن اتصال قاعدة البيانات ، والحد ، والصفحة ، والاستعلام ، والمعلمات الإجمالية ولكن للحفاظ على البساطة  سوف نحتفظ بها بهذه الطريقة.

مؤشر.php

 الآن  سنقوم بإنشاء الملف المسؤول عن استخدام فئة Paginator وعرض البيانات ، لذا دعني أريك أولاً HTML .

بسيط جداً ، هذا الملف فقط يعرض جدولاً سنقوم بتعبئته بالمعلومات المسترجعة من قاعدة البيانات ، ولاحظ أنه في هذا المثال ، أستخدم روتين التمهيد لتخطيط الصفحة الأساسية.

استخدام مرقم الصفحات

الآن للاستفادة من فئة Paginator الخاصة بنا ، أضف شفرة php التالية في أعلى المستند.

هذا البرنامج النصي بسيط جداً ، هو المطلوب فقط  أو فئة مرقم الصفحات، لاحظ أن هذا الرمز يفترض أن هذا الملف موجود في نفس الدليل كملف index.php ، إذا لم تكن هذه هي الحالة يجب عليك تحديث المسار وفقاً لذلك.

نحن نقوم بإنشاء الاتصال بقاعدة بياناتنا باستخدام مكتبة  MySQLi ، واسترجاع معلمات ترقيم الصفحات من GET وتعيين الاستعلام ، حيث أن هذه ليست مقالة على MySQL أو  ot  لذا لن أدخل بتفاصيل حول الاتصال أو الاستعلام. المستخدم هنا.

واخيرا نقوم بانشاء مرقم الصفحات واسترجاع النتائج للصفحة الحالية

عرض النتائج

الآن لعرض النتائج التي تم الحصول عليها قم باضافة التعليمة البرمجية التالية إلى نص الجدول.

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

روابط ترقيم الصفحات

                                       الآن لعرض روابط ترقيم الصفحات (paginator لنقم بإضافة التعليمة البرمجية التالية أدنى الجدول

للحصول على  Paginator createLinks نمرر معلمات الارتباطات التي تم الحصول عليها وفئة css لارتباطات ترقيم الصفحات المستخدمة من bootstrap هنا نتائج الصفحة التي تم انشاؤها

الخاتمة

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

لا تتردد في ترك أسئلة أو تعليقات أو تقييمات عامة,  أدناه!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.