Pagination with CodeIgniter
Saturday, 07 August 2010 23:46
ကြၽန္ေတာ္ CodeIgniter နဲ႔ Pagination Tutorial ေလးေရးျပပါမယ္။ ကြၽန္ေတာ္ CI နဲ႔ ပတ္သက္ျပီး ေရးထား သမ်ွကိုေတာ့
ဒီမွာ ျပန္ဖတ္ၾကည့္ ႏိုင္ပါတယ္။
-
CodeIgniter and MVC for Beginners
-
Structure and Configuration of CodeIgniter
-
CodeIgniter Database Library
-
CodeIgniter Form Helper
-
Simple Data Entry in CodeIgniter
တစ္ရက္က comment တစ္ခုမွာလည္း CI Post အသစ္ေရးဖို႔ ေျပာထားတာ ေရးမယ္ေျပာျပီး မအားတာနဲ႔ ခုမွပဲ ေရး
လိုက္ပါတယ္။ OK စလိုက္ၾကရေအာင္။ Pagination ဆိုတာ သိျပီးသားလို႕ ယူဆလို႕ ဒီ Pagination Feature ကို CI မွာ
ရွိေနတဲ့ pagination library ကိုဘယ္လိုသုံးျပီး ဖန္တီးသလဲ ဆိုတာ ေလ့လာၾကည့္မယ္။
.png)
1) Setup 'Category' Tables
ဒီ category table script ကို run လိုက္ပါ။
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`description` varchar(255) NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
INSERT INTO `category` (`id`, `description`, `status`) VALUES
(1, 'Software Development', 1),
(2, 'Programmer', 1),
(3, 'Web Designer ', 1),
(5, 'Enginner', 1),
(6, 'AutoCAD', 1),
(7, 'Sale Person', 1),
(8, 'Driver', 1),
(9, 'IT', 1),
(10, 'Marketing', 1),
(11, 'Teaching', 1),
(13, 'Accounting1', 1);
2) Change to config.php and database.php
ကိုယ္ setting အတိုင္း config folder ေအာက္က config.php နဲ႔ database.php မွာ ေျပာင္းေပးဖို႔ လိုတယ္။
3) Create category controller
category.php
<?php
class Category extends Controller {
function index()
{
$this->load->library('pagination');
$this->load->library('table');
$this->table->set_heading('ID', 'Description', 'Status');
$config['base_url'] = 'http://localhost:8888/ci_pagination/index.php/category/index';
$config['total_rows'] = $this->db->get('category')->num_rows();
$config['per_page'] = 5;
$this->pagination->initialize($config);
$data['records'] = $this->db->get('category', $config['per_page'], $this->uri->segment(3));
$this->load->view('category_view', $data);
}
}
ဒီ Code ကိုရွင္းရရင္ေတာ့ဗ်ာ။ $this->load->library('pagination');
$this->load->library('table');
$this->table->set_heading('ID', 'Description', 'Status');
CI pagination နဲ႔ table library ေတြကို loading လုပ္ျပီးေတာ့ table header column name ေတြကို သက္မွတ္ ပါတယ္။
Pagination လုပ္ဖို႔ အဓိက Parameter သံုးခုလိုတယ္ဗ်ာ။ ခု $config မွာအဲဒါေတြကို ထည့္ေပးပါတယ္။
$config['base_url'] - ဆိုတာကေတာ့ pagination ရွိေနတဲ့ controller ရဲ႕ function ရွိေနတဲ့ full path ကိုထည့္ေပးရမယ္။
ကြၽန္ေတာ္ကေတာ့ category controller ထဲက index function ကိုေခၚထားထားပါတယ္။ Pagination မွာ page no ေတြကို
click တဲ့အခါ ဒီ base_url ကေန ျပန္စျပီ အလုပ္လုပ္မွာ ျဖစ္ပါတယ္။
$config['total_rows'] - ကေတာ့ table ထဲမွာ ရွိေနတဲ့ rows အားလုံး စုစုေပါင္းကို ေျပာတာ ျဖစ္ပါတယ္။ ဒီေနရာမွာ
database library ထဲက get နဲ႔ num_rows ကို သုံးလိုက္ပါတယ္။
$config['per_page'] - ကေတာ့ page တစ္ခုမွာ ျပဖို႔ row အေရအတြက္ ျဖစ္ပါတယ္။
အားလုံး ထည့္ျပီးတဲ့ အခါမယ္ pagination ကို ဒီလို initialize လုပ္ပါတယ္။
$this->pagination->initialize($config);
ဒီအဆင့္ကေတာ့ page no ေတြကို click တဲ့ အခါ database ထဲက record ေတြကို သြားဖတ္တဲ့ အခါ ဒီ parameter ေလးေတြ
ကို ေပးဖို႔ လိုတယ္ဗ်ာ။
$data['records'] = $this->db->get('category', $config['per_page'], $this->uri->segment(3));
category - က table name ျဖစ္ပါတယ္။
$config['per_page'] - ကေတာ့ record ဘယ္ႏွခု ဖတ္မလဲ ဆိုတာ ျဖစ္ပါတယ္။
$this->uri->segment(3) - ကေတာ့ဗ်ာ number တစ္ခု ပါလာလိမ့္မယ္။ အဲဒီ number ကဘာကို ကိုယ္စားျပဳလဲ ဆိုရင္ေတာ့
ဘယ္ေနရာကေန စဖတ္မယ္ ဆိုတာျဖစ္ပါတယ္။ segment ကိုေတာ့ ကိုယ္ controller & function ေပၚမူတည္ျပီး
index.php ေနာက္ကေန စျပီး သတ္မွတ္ ႏိုင္တယ္။ run ေနတဲ႔query ကို ဒီလိုျမင္ေနရင္ အဆင္ေျပသြားမယ္ဗ်ာ။
SELECT * FROM `category` limit start,end ျဖစ္ျပီး စတဲ့ start ေနရာကို ေျပာင္းသြားဖို႔ segment ယူျပီး ထည့္ေပးတာ
ျဖစ္ပါတယ္။ အိုေက ေနာက္ဆုံး view ကိုဒီလို ေခၚလိုက္ပါမယ္။
$this->load->view('category_view', $data);
view ထဲမွာ ဒီ ႏွစ္ေၾကာင္းကို ေရးေပး လိုက္တဲ့ အခါ
4) Create view
category_view.php (View folder ေအာက္မွာ create လုပ္ေပး ရမယ္။)
<h1>Pagination with CodeIgniter</h1>
<?php echo $this->table->generate($records); ?>
<?php echo $this->pagination->create_links(); ?>
ေအာက္ကပုံ အတိုင္း pagination လုပ္ထားျပီးသား table တစ္ခု ရပါလိမ့္မယ္။

CSS ေလးေတြကို သင့္ေတာ္သလို ျပင္ေပး လိုက္တဲ့ အခါ ဒီလိုေလး ျမင္ရပါမယ္။

ဖတ္ၾကည့္ျပီး စမ္ၾကည့္လို႕ မရရင္ comment ေပးျပီး ေဆြးေႏြးႏိုင္ပါတယ္။
-
2010-09-21 18:22:07 |SAdministrator| admin - Re: Ei Chaw
segment ဆိုတာ URL ေပၚက လာတဲ့ values ေတြကို ဖမ္းဖို႔ သုံးတာဗ်။ CodeIgniter မွာ index.php/controller/method/segment လို႔ URL Pattern ကို လုပ္ထားေတာ့ မ်ားေသာအားျဖင့္ေတာ့ segment(3) ဆိုျပီး ယူေလ့ရွိတယ္ဗ်ာ။ တစ္ကယ္လို႔ index.php/admin/controller/method/segment
လို႔ဆိုရင္ေတာ့ segment က 4 ျဖစ္သြားမယ္ဗ်ာ။ admin ဆိုတာကေတာ့ folder name ပါ။ controller ရွိေနတဲ့ folder ေပါ့။
-
2010-10-14 14:48:08 |220.255.7.xxx| Ei Chaw San
Bro ေရ
Pagination ကိုစမ္းၾကည္.တာ ေနာက္ဆံုး LINK 3 က နိွပ္လို.မရဘူးျဖစ္ေနတယ္။ EG...Data က ၁၄ ခုရွိတယ္ဆို 1,2,3 အကုန္ေပၚတယ္။ဒါေပမယ္. ေနာက္ဆံုး Link က Click လို.မရဘူး.။ဘယ္လိုျဖစ္တယ္မသိဘူး။
| < Prev | Next > |
|---|
Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)
Bro ေရ
$this->uri->segment(3) ကို နားမလည္လို.နည္းနည္းေလာက္ထပ္ရွင္းေပးပါေနာ္
ေက်းွဇူးပါ။