PHP Pagination
Posted: December 8, 2009 at 11:57 am | Tags: pagination, pagingကြ်န္ေတာ္ Blog လုပ္ျပီး မေရးျဖစ္ဘူးျဖစ္ေနတယ္ ဗ်.. မအားတာနဲ႕.. ေရးရမွာပ်င္းတာနဲ႕
အခုေတာ့ ကြ်န္ေတာ္ ေရးျပီဗ်ာ .. အျပီအျပင္ … PHP Beginner Tip ေလးေတြ ေပါ့ဗ်ာ … အခုမွ စေလ့လာတဲ့လူေတြကို အေထာက္အကူျဖစ္ေအာင္လို႕ပါ …..
အခု ေရးမည့္ အေၾကာင္းကေတာ့ PHP သမားေတြ ေတာ္ေတာ္မ်ားမ်ား ျပႆနာတက္တတ္တဲ့ pagination ေပါ့ဗ်ာ Record ေတြ တအားမ်ားလာတဲ့ အခါၾကရင္ page ေလးေတြခြဲျခင္ၾကတာ လူတိုင္းပါပဲ .. .NET သမားေတြက အဲဒီျပႆနာကင္းတယ္ဗ် .. .NET မွာ က Component ပါျပီးသား ဆြဲထည့္လိုက္ရင္ ျပီး ျပီ … php က်ေတာ့ မရဘူး .. အကုန္ေရးရတာ .. အဲဒီအခါၾကေတာ့ Google မွာ ရွာလိုက္ရင္ေတြ႕ေလ့ရွိတာက page ကို ဒီလိုမ်ိဳးေလးေတြဗ် .. albums.php?start=20 ဘာညာေပါ့ဗ်ာ ..
အဲဒါ ကို ၾကည့္မယ္ဆိုရင္ သူ က MySQL မွာ Record ဘယ္ေလာက္ က စပါ ဘာညာေပါ့ .. အဲဒီလိုမ်ဳိး ကြ်န္ေတာ္ က မၾကိဳက္ဘူးဗ် ကြ်န္ေတာ္ က ဘယ္လိုၾကိဳက္လဲဆိုေတာ့ ဥပမာ albums.php?page=1 စသည္ျဖင့္ေပါ့ .. အဲဒီမွာ Google မွာ ထပ္ရွာသည္ေပါ့ဗ်ာ .. ေတြ႕ေတာ့ေတြ႕တယ္ .. ဘာကြိဳင္တက္ျပန္လဲဆိုေတာ့ .. page ေတြက ေအာက္မွာ 1 2 3 4 စသည္ျဖင့္ သြားေပၚတယ္ …
ဒါေပမယ့္ page 300 ဆို 300 လံုး သြားေပၚတယ္ ဗ်ာ ခက္တာက အဲဒီေတာ့ ကြ်န္ေတာ္ က ဘယ္လိုလုပ္ခ်င္ျပန္သလဲဆိုေတာ့ Wordpress လိုေပါ့ဗ်ာ << Prev 1 2 3 … 333 334 Next >> အဲဒီလိုေလး ဗ် လုပ္ခ်င္တာ .. ကြ်န္ေတာ္ ရွာရင္း နဲ႕ သြားေတြ႕တယ္ဗ် .. Source Code ေလးေတြ .. Stranger Studio မွာ ဗ်.. သူ႕ code ေတြက ေတာ္ေတာ္မ်ားတယ္ .. ရွုပ္လဲ နဲနဲ ရွုပ္တယ္ဗ် ..
ဘယ္လိုရွုပ္တာလဲဆိုေတာ့ .. ဥပမာ ကိုယ္ထည့္ခ်င္တာ က Page တခုတည္း file တဖိုင္တည္းဆို ရင္ ျပႆနာမဟုတ္ဘူးဗ် … ၄ ၊ ၅ ဖိုင္မွာ ထည့္ခ်င္တယ္ဆို အဲဒါေတြ အကုန္ လိုက္ထည့္ရမွာ မစားသာဘူး .. အဲဒီေတာ့ ကြ်န္ေတာ္ က ျပန္ျပင္လိုက္တယ္ .. Class ေလး တခုပံုစံ .. ဖိုင္ ကို include လုပ္ျပီးေခၚသံုးရံုပဲ .. PHP သမားေတြ အတြက္ ျပန္ျပီး Share ေပးလိုက္ပါတယ္ .. ကြ်န္ေတာ္ myanmarsongs.net မွာ သံုးထားတာေလး ကို ျပန္လည္ Share ေပးလိုက္ျခင္းျဖစ္ပါတယ္ ..
သံုးပံုသံုးနည္းက :
require_once('pagination.php');
$sql = 'SELECT * FROM contact';
$page_name = "page.php";
// pagination($query, $adjacents, $row_per_page, $page_name)
$pager = new pagination($sql,3,20,$page_name );
$rs = $pager->paginate();
while($each = mysql_fetch_assoc($rs))
{
// Your Loop Here
echo $each[name];
}
// Pages Navagation
echo $pager->pages();
သူ႕ကို ပံုေဖာ္ေပးတဲ့ Style က ..
div.pagination {
padding: 3px;
margin: 3px;
}
div.pagination a {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #AAAADD;
text-decoration: none; /* no underline */
color: #000099;
}
div.pagination a:hover, div.pagination a:active {
border: 1px solid #000099;
color: #000;
}
div.pagination span.current {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #000099;
font-weight: bold;
background-color: #000099;
color: #FFF;
}
div.pagination span.disabled {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #EEE;
color: #DDD;
}
ဒါပါပဲ .. အဲဒါေလး ေရးေပးရံုနဲ႕ Paging ေလး ရပါျပီ … အဲ .. လင့္က ဘယ္လိုပံုစံလဲဆိုေတာ့ ကြ်န္ေတာ္လိုခ်င္တဲ့ ပံုစံမ်ဳိးပါပဲ pagename.php?page= ေပါ့ .. အဲ .htaccess နဲ႕ သံုးခ်င္တယ္ဆိုရင္ ၊ pagename/page/1 ပံုစံေပါ့ဗ်ာ ..
အဲဒီလိုသံုးခ်င္တယ္ဆိုရင္ …
အေပၚက page_name ေနရာမွာ
$page_name = "http://www.yourdomain.com/pagename/page";
ေလးထည့္ျပီး pagination.php ဖိုင္ထဲမွာ “?page=” ကိုရွာျပီး “/” ေလးနဲ႕ အစားထိုးေပးလိုက္ရင္ ရပါျပီ …