ကျွန်ုပ်တို့တွင်အချို့သောအမျိုးအစားများတွင်ဆောင်းပါးများပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုရှိသည်ဆိုပါစို့။ Paging ၏အဓိကအချက်မှာလက်ရှိစာမျက်နှာနံပါတ်ပေါ်တွင် အခြေခံ. ခင်းကျင်းမှုမှ array မှ array မှခင်းကျင်းခြင်းနှင့်စာမျက်နှာတိုင်းတွင်ဖော်ပြထားသောအပိုင်းအစအရေအတွက်ကိုကြားဖြတ်ရန်ဖြစ်သည်။
များသောအားဖြင့်အများအားဖြင့်ပါ 0 င်သည့် parteters များပါ 0 င်သည်။
$ စာမျက်နှာ : လက်ရှိစာမျက်နှာနံပါတ်
$ Penesize - စာမျက်နှာတစ်ခွက်ပြသတဲ့ဆောင်းပါးအရေအတွက်
$ offset : Offset, offset, ($ စာမျက်နှာ - 1) * $ penesize * အဖြစ်တွက်ချက်
array_slice ကိုအသုံးပြုပြီး Pagnination Asset မှ array မှ အဆင် သင့်ဖြစ်သည့် $ penesize ဆောင်းပါးများကိုထည့်သွင်းနိုင်သည်။
array_slice ကိုအသုံးပြုပြီးဆောင်းပါးအမျိုးအစားခွဲခြားမှုကိုဘယ်လိုအကောင်အထည်ဖော်ရမယ်ဆိုတာပြသတဲ့ရိုးရှင်းတဲ့ဥပမာတစ်ခုပါ။
<?php
// အမျိုးအစားအားလုံးဆောင်းပါးများအားလုံးတုပပါ
$articles = [
['id' => 1, 'title' => 'အပိုဒ် 1', 'category' => 'သိပ္ပံနှင့်နည်းပညာ'],
['id' => 2, 'title' => 'အပိုဒ် 2', 'category' => 'သိပ္ပံနှင့်နည်းပညာ'],
['id' => 3, 'title' => 'အပိုဒ် 3', 'category' => 'အသက်'],
['id' => 4, 'title' => 'အပိုဒ် 4', 'category' => 'သိပ္ပံနှင့်နည်းပညာ'],
['id' => 5, 'title' => 'အပိုဒ် 5', 'category' => 'အသက်'],
['id' => 6, 'title' => 'အပိုဒ် 6', 'category' => 'သိပ္ပံနှင့်နည်းပညာ'],
['id' => 7, 'title' => 'အပိုဒ် 7', 'category' => 'သိပ္ပံနှင့်နည်းပညာ'],
];
// အမျိုးအစားတစ်ခုရွေးပါ
$category = 'သိပ္ပံနှင့်နည်းပညာ';
// လက်ရှိဆောင်းပါးများထုတ် filter
$categoryArticles = array_filter($articles, function ($article) use ($category) {
return $article['category'] === $category;
});
// အညွှန်းကိန်းကိုပြန်လည်တည်ဆောက်ပါ,အသုံးပြုရန်လွယ်ကူသည် array_slice
$categoryArticles = array_values($categoryArticles);
// လက်ရှိစာမျက်နှာနံပါတ်,မှ URL ရယူ,ပျက်ကွက်ခြင်း 1 စာမျက်နှာ
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
// 每စာမျက်နှာ显示文章数
$pageSize = 3;
// offset တွက်ချက်
$offset = ($page - 1) * $pageSize;
// 截取当前စာမျက်နှာ的文章
$currentPageArticles = array_slice($categoryArticles, $offset, $pageSize);
// 输出当前စာမျက်နှာ文章
foreach ($currentPageArticles as $article) {
echo "<h3>" . htmlspecialchars($article['title']) . "</h3>";
}
?>
Pagination သည်အကြောင်းအရာများကိုပြသရန်မလိုအပ်ပါ။ စုစုပေါင်းစာမျက်နှာများစုစုပေါင်းနှင့် paged link များကို အခြေခံ. တွက်ချက်နိုင်ပြီး paged link များကိုထုတ်ပေးနိုင်သည်။
<?php
$totalArticles = count($categoryArticles);
$totalPages = ceil($totalArticles / $pageSize);
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $page) {
echo "<strong>$i</strong> ";
} else {
echo "<a href=\"http://gitbox.net/yourcms?page=$i\">$i</a> ";
}
}
?>
ဤနေရာတွင် http://gitbox.net ကို သင်အမှန်တကယ်အခြေအနေနှင့်အညီအစားထိုးနိုင်သည့်နမူနာဒိုမိန်းအမည်အဖြစ်အသုံးပြုသည်။
PHP ၏ Array_Slice function ကိုအသုံးပြုခြင်းသည် classified ဆောင်းပါးများ၏စာပြာဆောင်းပါးများအတွက်သင့်လျော်သော Array Data ၏ paging ကိုအကောင်အထည်ဖော်ရန်အလွန်အဆင်ပြေသည်။ သော့ချက်မှာ Offset ကိုမှန်ကန်စွာတွက်ချက်ရန်နှင့်ခွဲခြားခြင်းစစ်ထုတ်ခြင်းပြီးနောက်ခင်းကျင်းမှုကိုအချပ်ပါ။ ရိုးရှင်းသော Pagination Navigation နှင့်ချိတ်ဆက်ထားသည့်အတိုင်း၎င်းသည်ဆောင်းပါးအမျိုးအစားခွဲခြားမှုတိုက်ဖျက်ရေးအတွက် CMSS အများစု၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည်။
ဤနည်းလမ်းသည်ဒေတာဘေ့စ်မှုန်ဝါးမှုအပေါ်မှီခိုအားထားခြင်းမရှိပါ။ အချက်အလက်အမြောက်အများအတွက်ထိရောက်မှုတိုးတက်စေရန်ဒေတာဘေ့စ်၏အကောင်အထည်ဖော်မှုကိုအသုံးပြုရန်အကြံပြုသည်။