۲ سیدرضا بازیار
پیاده سازی صفحه بندی در پروژه
جامعه پی اچ پی ایجاد شده در ۱۳ اردیبهشت ۱۴۰۱

سلام. من واسه این پروژه یه صفحه بندی یا pagination انجام دادم و به خوبی هم کار میکنه. ولی یه قسمتش رو تکمیل نکردم و اومدم اینجا یه راهنمایی بگیرم.

کد css:

.text-center {
    text-align: center;
}
.pagination {
    list-style-type: none;
    padding: 10px 0;
    display: inline-flex;
    justify-content: space-between;
    box-sizing: border-box;
}
.pagination li {
    box-sizing: border-box;
    padding-right: 10px;
}
.pagination li a {
    box-sizing: border-box;
    background-color: #e2e6e6;
    padding: 8px;
    text-decoration: none;
    font-size: 12px;
    font-weight: bold;
    border-radius: 4px;
}
.pagination li a:hover {
    background-color: #d4dada;
}
.pagination .next a,
.pagination .prev a {
    text-transform: uppercase;
    font-size: 12px;
}
.pagination .currentpage a {
    background-color: #518acb;
    color: #fff;
}
.pagination .currentpage a:hover {
    background-color: #518acb;
}

کد html و php که در فایل index قرار میگیره (پایین جدول اطلاعات مخاطبین)

<div class="text-center">
                    <div class="pagination">
                        
                        $total_pages = 1002;
                        $num_results_on_page = 20;
                        $page = isset($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
                        ?>
                         if (ceil($total_pages / $num_results_on_page) > 0) : ?>
                            <ul class="pagination">
                                 if ($page > 1) : ?>
                                    <li class="prev"><a href="?page= echo $page - 1 ?>">Preva>li>
                                 endif; ?>
                                 if ($page > 3) : ?>
                                    <li class="start"><a href="?page=1">1a>li>
                                    <li class="dots">...li>
                                 endif; ?>
                                 if ($page - 2 > 0) : ?><li class="page"><a href="?page= echo $page - 2 ?>"> echo $page - 2 ?>a>li> endif; ?>
                                 if ($page - 1 > 0) : ?><li class="page"><a href="?page= echo $page - 1 ?>"> echo $page - 1 ?>a>li> endif; ?>
                                <li class="currentpage"><a href="?page= echo $page ?>"> echo $page ?>a>li>
                                 if ($page + 1 < ceil($total_pages / $num_results_on_page) + 1) : ?><li class="page"><a href="?page= echo $page + 1 ?>"> echo $page + 1 ?>a>li> endif; ?>
                                 if ($page + 2 < ceil($total_pages / $num_results_on_page) + 1) : ?><li class="page"><a href="?page= echo $page + 2 ?>"> echo $page + 2 ?>a>li> endif; ?>
                                 if ($page < ceil($total_pages / $num_results_on_page) - 2) : ?>
                                    <li class="dots">...li>
                                    <li class="end"><a href="?page= echo ceil($total_pages / $num_results_on_page) ?>"> echo ceil($total_pages / $num_results_on_page) ?>a>li>
                                 endif; ?>
                                 if ($page < ceil($total_pages / $num_results_on_page)) : ?>
                                    <li class="next"><a href="?page= echo $page + 1 ?>">Nexta>li>
                                 endif; ?>
                            ul>
                         endif; ?>
                    div>
                div>

در این کد دو پارامتر رو دستی وارد کردم و قبل از وارد کردن اومدم اینجا بپرسم که بهترین روش واسه وارد کردنش چیه

$total_pages = 1002;
$num_results_on_page = 20;

$total_pages باید تعداد کل رکورد‌های موجود در جدول رو به ما بده. این رو از کدوم قسمت بگیرم استاندارد‌تر هست؟

$num_results_on_page هم باید تعداد هر آیتم در هر صفحه رو ست کنه. ما قبلا در کلاس Contact این رو ست کردیم که به صورت protected هست. حالا روش استاندارد واسه گرفتن عدد از اونجا چیه؟

سلام دوست عزیز

۱. میتونید count بگیرید

۲. همون پراپرتی خوبه و مشکلی نداره

محمد گازری ۱۳ اردیبهشت ۱۴۰۱، ۰۶:۵۵

در گوگل میت توضیح داده شد.

بهترین پاسخ
محمد گازری ۱۳ اردیبهشت ۱۴۰۱، ۰۷:۳۳