Pagination แบ่งหน้าการแสดงผลด้วย Codeigniter (PHP Mysql)

บทความนี้เป็นการสอนการแบ่งหน้า(Pagination) โดยใช้ Library ของ Codeigniter ซึ่งการแบ่งหน้าเป็นสิ่งหนึ่งที่จำเป็นต้องมีในเว็บแอพลิเคชั่น ซึ่งก็แล้วแต่เทคนิคและลักษณะกันไป ประโยชน์ของการแบ่งหน้าช่วยให้หน้าเว็บไซต์ของเราไม่ยืดยาวและโหลดเร็วขึ้น แน่นอนว่าสำหรับบทความนี้ จะสอนแบบอธิบายให้เข้าใจง่ายๆ นะครับ มาเริ่มกันเลยครับ

เตรียมความพร้อม!
1. PHP เวอร์ชั่น 5.6
2. MySQL เวอร์ชั่น  5.6
3. Tool PHP MyAdmin
4. Codeigniter Framework เวอร์ชั่น 3.0.4
5. Editor ในตัวอย่างบทความนี้ผมใช้ Atom 1.0 นะครับ

วิธีการ/ขั้นตอน

Import SQL

Import ตารางข้อมูล Product ก่อน Code SQL ด้านล่างนี้ครับ

Model

เริ่มเขียน Code ในส่วนของ Model ตามตัวอย่างนี้ผมสร้างไฟล์ชื่อ Product_model.php ไว้ใน [ชื่อโปรเจค]\Application\models\Product_model.php ตามรูปภาพด้านล่าง
pagination-01
สร้างไฟล์จากนั้นนำ code ไปใส่ในไฟล์นี้ครับ

จากตัวอย่าง code ด้านบนเป็นการใช้งาน Active Record เพื่อค้นหาจำนวนแถวทั้งหมด และดึงข้อมูลจากตาราง products

เมธอด record_count() ทำหน้าที่ return ค่า จำนวนแถวทั้งหมดกลับไปยัง Controller เพื่อนำไปใช้กับ $config[‘total_rows’] ซึ่งเป็น Library pagination
เมธอด fetch_product() ทำหน้าที่ดึงข้อมูลทั้งหมดจากตาราง products โดยมี arguments รับค่า 2 ค่าเข้าไปซึ่งเป็น $limit และ $start ถูกส่งโดย controller อีกที

Controller

เริ่มเขียน Controller ให้สร้างไฟล์ Product.php ไว้ใน [ชื่อโปรเจค]\Application\controllers\Product.php ตามรูปภาพด้านล่าง
pagination-02
สร้างไฟล์เสร็จแล้ว ให้นำ code ด้านล่างไปใส่

เริ่มต้น code ในส่วนของ construct() ผมให้ทำการโหลด model ที่ทำการเขียนขึ้นมาเมื่อสักครู่กับโหลด library pagination ขึ้นมาใช้งาน (สามารถตั้งเป็น auto load ได้แต่ต้องไปตั้งค่าที่ config แทน)
เมธอด index() ในส่วน code ทำการตั้งค่าในตัวแปร $config โดยนำข้อมูลจาก code model บางส่วน
$config[“total_rows”] หมายถึง จำนวนข้อมูลทั้งหมด
$config[“per_page”] หมายถึงจำนวนข้อมูลแถวต่อ 1 หน้าที่ให้แสดงผล
$config[“uri_segment”] หมายถึง ตั้งค่าให้ตัวเลขหน้าอยู่ตำแหน่งพารามิเตอร์ไหนของ URL

และสุดท้ายหลังจากนั้นให้เราใช้งานเมธอด create_links() ใน View ซึ่งคำสั่งนี้จะทำการแสดงผล pagination

View

สำหรับ view ให้เราทำการสร้างไฟล์ product.php ไว้ใน [ชื่อโปรเจค]\Application\views\product.php ตามรูปภาพด้านล่าง
pagination-03
สร้างไฟล์แล้วให้นำ code ด้านล่างใส่

Result

ดูผลลัพธ์ เมื่อเข้ามาที่ลิงค์ http:\\localhost\pagination\product\index
pagination-04

สรุป

บทความนี้ทำให้เราสามารถทำการแบ่งหน้าได้โดยใช้ Library ของ Codeigniter แบบพื้นฐาน ซึ่งถ้าเราต้องการตั้งค่ามากกว่านี้ เช่น ต้องการกำหนด class css /tag html / ซ่อนลิงค์กรณีที่ข้อมูลมีหน้าเดียว เป็นต้น ให้เราเข้าไปอ่านได้ที่ Document ของเว็บหลักได้ Pagination Codeigniter

สำหรับบทความนี้หากมีใครสงสัยหรือติดปัญหา comment ไว้ด้านล่างครับ.

You May Also Like

About the Author: Onmobile

โปรแกรมเมอร์
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments