ایجاد Pagination (صفحه بندی): قسمت اول

How To Create Pagination? - Part 1

0 381

صفحه بندی یا ساخت Pagination با PHP

با سلام به همراهان روکسو! در این مقاله ی آموزشی قصد داریم به شما نحوه ی ساخت Pagination با PHP یا صفحه بندی مطالب سایتتان را آموزش دهیم. معمولا زمانی که از دستور SELECT برای دریافت اطلاعات از پایگاه داده استفاده می کنیم، خروجی بسیار بزرگی خواهیم داشت. فرض کنید که می خواهیم پست های سایت خود را به کاربر نمایش دهیم و حدود 1000 پست مختلف نیز در پایگاه داده ی خود داریم. به نظر شما چطور باید این کار را انجام دهیم؟

اگر دستوری شبیه به دستور زیر را اجرا کنیم:

تمام 1000 پست ها به سمت کاربر برگردانده می شود! جدا از هزینه ی پردازشی که چنین دستوری روی سرور ما می گذارد، تجربه ی بسیار بدی را نیز برای کاربران به وجود می آورد. تصور کنید در صفحه ی اول سایت خود 1000 پست را نمایش دهیم؛ کاربر باید 1000 پست را به همراه متن و تصاویرشان دریافت کند! سپس مرورگر همه را در صفحه ی اول نمایش دهد! حالا فرض کنید کاربر بخواهد به قسمت footer سایت برود تا اطلاعات تماس شما یا نماد تایید تجارت الکترونیک شما را چک کند! اگر 1 ساعت هم اسکرول کند به انتهای سایت شما نخواهد رسید. تمام این مشکلات و مشکلات متعدد دیگر از دلایل وجود مبحثی به نام Pagination یا صفحه بندی هستند. در واقع نمایش تمام نتایج در صفحه ی اول مانند چاپ کتابی است که تمام مطالبش در یک صفحه ی 20 متری قرار داشته باشد!

با استفاده از مبحث صفحه بندی می توانیم کاری کنیم که نتایج برگشت داده شده از سمت پایگاه داده را به قسمت های مساوی تقسیم کنیم تا کاربر مثلا 10 پست اول را در صفحه ی اول سایت ببیند و اگر دوست داشت پست های بیشتری را مشاهده کند روی شماره ی صفحات کلیک کند تا بین آن ها جا به جا شود. تکنولوژی مورد استفاده ی ما در این آموزش زبان PHP و پایگاه داده ی MySQL است.

برای شروع کار فایلی به نام pagination.php ایجاد کنید. در ابتدا باید به پایگاه داده ی خود متصل شویم:

همانطور که می بینید با استفاده از رابط mysqli به پایگاه داده متصل شده ایم که قالب کلی زیر را دارد:

اگر با اتصال به پایگاه داده آشنا نیستید بهتر است روش اتصال PDO را یاد بگیرید؛ به مقالات آموزشی PDO در روکسو مراجعه کنید.

من برای اجرای مثال هایمان یک پایگاه داده به نام pagination طراحی کرده ام. کد های SQL طراحی این پایگاه داده را در اختیار شما قرار می دهم تا بتوانید با استفاده از آن پایگاه داده را برای خودتان بسازید:

شما می توانید این کدهای SQL را در phpMyAdmin یا هر سیستم مدیریت پایگاه داده ای که دوست دارید اجرا کنید تا پایگاه داده برایتان ساخته شود. به فایل pagination.php برگردید. در قدم اول باید متغیرهای مهمی را تعریف کنیم:

در خط اول با استفاده از دستور COUNT تعداد کل ردیف های موجود در جدول students را مشخص کرده ایم تا بعدا بتوانیم با تقسیم کردن آن بر عددی خاص بفهمیم در کل چند صفحه خواهیم داشت. مثلا اگر کل ردیف ها 500 ردیف باشد و ما بخواهیم در هر صفحه 10 پست نمایش داده شود بنابراین 50 صفحه خواهیم داشت. سپس با استفاده از دستور isset چک می کنیم که آیا page مشخص شده است یا خیر؛ page یک پارامتر ورودی به صورت GET در نوار آدرس مرورگر خواهد بود که برنامه نویسی آن به عهده ی شما است و به سایت شما بستگی دارد. این پارامتر معمولا به شکل زیر پاس داده خواهد شد:

pagination.php?page=3

البته حواستان باشد که اگر در برنامه نویسی سایت خود نام پارامتر پاس داده شده را چیزی به جز page بگذارید، باید به دنبال همان مقدار بگردید. در مرحله ی بعد، پس از آنکه مطمئن شدیم این پارامتر در url وجود دارد، در همان شرط بررسی کرده ایم که آیا از نوع عددی است؟ اگر عدد نبود صفحه ی 1 را در نظر می گیریم. علت این کار این است که page یک پارامتر ورودی در نوار آدرس مرورگر (GET) است بنابراین کاربران می توانند به راحتی و به صورت دستی مقدار متفاوتی را وارد url کنند که غیر عددی باشد. مثلا:

pagination.php?page=somethingElse

 در آخر نیز متغیری تعریف کرده ایم که تعداد نتایج نمایش داده شده در هر صفحه را مشخص میکند؛ ما می خواهیم در هر صفحه 5 پست بیشتر نمایش داده نشود. تا اینجای کار خوب پیش آمدیم. در قسمت بعد نتایج را از پایگاه داده دریافت کرده و آن ها را در صفحه ی HTML نمایش خواهیم داد.

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.

film izle | eskisehir escort | modanisa | mersin escort | www.ieski.com | eskort adana | www.izmir-eskort.org | kabak koyu | hd tv izle