v2.5.2
Giriş yap

Bootstrap paginations butonlarını sayfalama sistemine uyarlama

salm552
632 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Hazır bulduğum sayfalama sistemini bootstrap paginations butonları ile uyarlamaya çalıştım ancak her defasında bir butonu uyduramadım yardımcı olabilir misiniz?

<?php

try{ 

   $db = new PDO("mysql:host=localhost;dbname=veri;charset=utf8", "root",""); //veri tabını baglantısı

}catch(PDOException $e){

   echo $e->getMessage(); 

}

$Sayfa   = @ceil($_GET['sayfa']); //5,2 girilirse eğer get o zaman onu tam sayı yapar yanı 5 yapıyoruz bu kod ile
if ($Sayfa < 1) { $Sayfa = 1;} //eğer get değeri yerine girilen sayi 1 den küçükse sayfa değerini 1 yapıyoruz yani 1. sayfaya atıyoruz
$Say   = $db->query("select * from urun order by id DESC"); //makale sayısını çekiyoruz

$ToplamVeri   = $Say->rowCount(); //makale sayısını saydırıyoruz

$Limit	= 3; //bir sayfada kaç içerik çıkacağını belirtiyoruz. 

$Sayfa_Sayisi	= ceil($ToplamVeri/$Limit); //toplam veri ile limiti bölerek her toplam sayfa sayısını buluyoruz

if($Sayfa > $Sayfa_Sayisi){$Sayfa = $Sayfa_Sayisi;} //eğer yazılan sayı büyükse eğer toplam sayfa sayısından en son sayfaya atıyoruz kullanıcıyı

$Goster   = $Sayfa * $Limit - $Limit; // sayfa= 2 olsun limit=3 olsun 2*3=6 6-3=3 buranın değeri 2. sayfada 3'dür 3-4-5-6... sayfalarda da aynı işlem yapılıp değer bulunur

$GorunenSayfa   = 5; //altta kaç tane sayfa sayısı görüneceğini belirtiyoruz.


$Makale	= $db->query("select * from urun order by id DESC limit $Goster,$Limit"); //yukarda göstere attıgımız değer diyelim ki 3 o zaman 3.'id den başlayarak limit kadar veri ceker.

$MakaleAl = $Makale->fetchAll(PDO::FETCH_ASSOC);

?>

<div id="Makale">

   <?php foreach($MakaleAl as $MakaleCek){?>

<div class="first">
<div class="card" style="width: 18rem;">
  <img src="./cardimgs/card.jpg" width="50px" height="150px" class="card-img-top" alt="...">
  <div class="card-body">
    <h5 class="card-title"><?=$MakaleCek["urun_isim"]?></h5>
    <p class="card-text"><?=$MakaleCek["urun_aciklama"]?></p>
    <a href="#" class="btn btn-primary">İncele</a>
  </div>
</div>
</div>


   <?php } ?>

   <?php if($Sayfa > 1){?>
   <span class="say_sabit"><a href="index.php?sayfa=1">İlk</a></span> <!--1. Sayfaya gider-->

   <div class="say_sabit"><a href="index.php?sayfa=<?=$Sayfa - 1?>">Geri</a></div> <!--Bir Önceki Sayfaya Gitmek İçin Sayfa Değerini 1 eksiltiyoruz-->

   <?php } ?>

   <?php 

    for($i = $Sayfa - $GorunenSayfa; $i < $Sayfa + $GorunenSayfa +1; $i++){ // i kaç ise o sayıdan başlar 1-2-3-4-5 yazmaya. mesela sayfa 7deyiz 7 - 5 = 2'dir 2 sayfadan sonra sayfalamaya başlar yani 2-3-4-5-6-7 gibi bu aynı mantıkla devam eder.


      if($i > 0 and $i <= $Sayfa_Sayisi){

         if($i == $Sayfa){

            echo '<span class="say_aktif">'.$i.'</span>'; //eğer i ile sayfa değerleri aynıysa o zaman onu aktif css'si ekle

         }else{

            echo '<a class="say_a" href="index.php?sayfa='.$i.'">'.$i.'</a>'; //eğer aynı değilse normal listele

         }

      }

   }
   ?>
   <?php if($Sayfa != $Sayfa_Sayisi){?>

   <div class="say_sabit"><a href="index.php?sayfa=<?=$Sayfa + 1?>">İleri</a></div><!--Bir Sonra ki Sayfaya Gitmek için sayfa değerini 1 artırıyoruz.-->

   <div class="say_sabit"><a href="index.php?sayfa=<?=$Sayfa_Sayisi?>">Son</a></div><!--Buldugumuz Toplam Sayfa Sayısını buraya cekiyoruz tıklandıgında en son sayfaya gider-->
   <?php } ?>

<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">Previous</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">Next</a></li>
  </ul>
</nav>

Yardımcı olan arkadaşlara şimdiden çok teşekkürler.

makifgokce
1010 gün önce
function pagination($current_page, $total_pages, $page_url)
{
    $pagination = '';
    if($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages){
        $pagination .= '<ul class="pagination">';

        $right_links    = $current_page + 3;
        $previous       = $current_page - 1;
        $next           = $current_page + 1;
        $first_link     = true;

        if($current_page > 1){
			$previous_link = ($previous==0)?1:$previous;
            $pagination .= '<li class="page-item"><a class="page-link" href="'.$page_url.'?sayfa=1">İlk</a></li>';
            $pagination .= '<li><a class="page-link" href="'.$page_url.'?sayfa='.$previous_link.'">Önceki</a></li>';
                for($i = ($current_page-2); $i < $current_page; $i++){
                    if($i > 0){
                        $pagination .= '<li><a class="page-link" href="'.$page_url.'?sayfa='.$i.'">'.$i.'</a></li>';
                    }
                }
            $first_link = false;
        }

        if($first_link){
            $pagination .= '<li class="page-item disabled"><a class="page-link">'.$current_page.'</a></li>';
        }elseif($current_page == $total_pages){
            $pagination .= '<li class="page-item disabled"><a class="page-link">'.$current_page.'</a></li>';
        }else{ //regular current link
            $pagination .= '<li class="page-item disabled"><a class="page-link">'.$current_page.'</a></li>';
        }

        for($i = $current_page+1; $i < $right_links ; $i++){
            if($i<=$total_pages){
                $pagination .= '<li class="page-item"><a class="page-link" href="'.$page_url.'?sayfa='.$i.'">'.$i.'</a></li>';
            }
        }
        if($current_page < $total_pages){
				$next_link = ($next > $total_pages)? $total_pages : $next;
                $pagination .= '<li class="page-item"><a class="page-link" href="'.$page_url.'?sayfa='.$next_link.'">İleri</a></li>';
                $pagination .= '<li class="page-item"><a class="page-link" href="'.$page_url.'?sayfa='.$total_pages.'">Son</a></li>';
        }

        $pagination .= '</ul>';
    }
    return $pagination;
}
$x = $db->prepare("select id from urun order by id DESC");
$x->execute();
$z = $x->fetchAll(PDO::FETCH_ASSOC);
$pageLength = 10;
$page = isset($_GET['sayfa']) ? $_GET['sayfa'] : 1;
$pages = ceil(count($z)/$pageLength);
if($page < 1) {
    $page = 1;
}
if($page > $pages){
    $page = $pages;
}
$start = ($page - 1) * $pageLength;
$dt = $db->prepare("select * from urun order by id DESC limit $start, $pageLength");
$dt->execute();
$data = $dt->fetchAll(PDO::FETCH_ASSOC);

foreach($data AS $item)
{
	//verileri yazdır
}

echo pagination($page, $pages, "http://localhost/index.php");