v2.5.2
Giriş yap

PHP İLE SAYFALANDIRMA YAPMAK

umutkalender
592 defa görüntülendi

php ile sayfalandırma nasil yapılır yardımcı olabilir misiniz?

Cevap yaz
Cevaplar (4)
gokcin
1090 gün önce

$Sayfa          = @intval($_GET['page']); if(!$Sayfa) $Sayfa = 1;
$ToplamVeri     = $db->query('SELECT COUNT(*) FROM table')->fetchColumn(); 
$Limit          = 20;
$Sayfa_Sayisi   = ceil($ToplamVeri/$Limit); if($Sayfa > $Sayfa_Sayisi){$Sayfa = 1;}
$Goster         = $Sayfa * $Limit - $Limit;
$GorunenSayfa   = 5;

$sql        = $db->prepare("SELECT * FROM table ORDER BY id DESC LIMIT $Goster,$Limit");
$sql_total  = $sql->rowCount();
$sql->execute();
while ($row=$sql->fetch(PDO::FETCH_ASSOC)) {
    //Kendi sorgu alanın
}



for($i = $Sayfa - $GorunenSayfa; $i < $Sayfa + $GorunenSayfa +1; $i++){ 
    if($i > 0 and $i <= $Sayfa_Sayisi){
        if($i == $Sayfa){
            $button.= '<li class="page-item active"><a class="page-link" href="#">'.$i.'</a></li>';
        }else{
            $button.= '<li class="page-item"><a class="page-link" href="?page='.$i.'">'.$i.'</a></li>';
        }
    }
}

if ($Sayfa==$Sayfa_Sayisi) {

    $page_son = '
    <li class="page-item disabled">
    <a class="page-link" href="#">
    Son Sayfa <svg xmlns="http://www.w3.org/2000/svg" style="width: 1.25rem;height: 1.25rem;font-size: 1.25rem;vertical-align: bottom;stroke-width: 1.5;" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="9 6 15 12 9 18"></polyline></svg>
    </a>
    </li>';
} else {

    $page_son.= '<li class="page-item"><a class="page-link" href="?page='.$Sayfa_Sayisi.'"> Son Sayfa <svg xmlns="http://www.w3.org/2000/svg" style="width: 1.25rem;height: 1.25rem;font-size: 1.25rem;vertical-align: bottom;stroke-width: 1.5;" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="9 6 15 12 9 18"></polyline></svg></a></li> '; 
}

if ($Sayfa==1) {

    $page_one.= '<li class="page-item disabled"><a class="page-link" href="#" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" style="width: 1.25rem;height: 1.25rem;font-size: 1.25rem;vertical-align: bottom;stroke-width: 1.5;" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="15 6 9 12 15 18"></polyline></svg> Başa Dön</a></li>';
} else {

    $page_one.= '<li class="page-item"><a class="page-link" href="?page=1" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" style="width: 1.25rem;height: 1.25rem;font-size: 1.25rem;vertical-align: bottom;stroke-width: 1.5;" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="15 6 9 12 15 18"></polyline></svg> Başa Dön</a></li>'; 
}


<nav class="card-footer d-flex align-items-center">
    <ul class="pagination m-0 ms-auto">
        <?php echo $page_one;?>
        <?php echo $button;?>
        <?php echo $page_son;?>
    </ul>
</nav> 
metehankuscu
1090 gün önce

Dostum sayfalandırma işlemi basitçe kod dökücek olursam şöyle olur.
Elinde 2 adet php dosyası olucak bunlardan birisi anasayfa.php diğeri ise pagination.php (sen istediğin ismi koyabilirsin tabiki).
anasayfa.php dosyanda diyelim ki iletişim ve hakkında linkin var.

anasayfa.php

     <a href="pagination.php?sayfa=iletisim">İletişim</a>
     <a href="pagination.php?sayfa=hakkinda">Hakkında</a>

İletişim linkine href olarak bunu verikten sonra pagination sayfana gelmen lazım,

pagination.php

     if(isset($_GET['sayfa'])){
        if ($_GET['sayfa'] == 'iletisim') {
            echo "Burası İletişim Sayfasıdır...";
        }
    }
    if(isset($_GET['sayfa'])){
        if ($_GET['sayfa'] == 'hakkinda') {
            echo "Burası Hakkında Sayfasıdır...";
        }
    }
     

Eğer bu adımları doğru bir şekilde yaparsan iletişim'e tıklandığı takdirde

Burası İletişim Sayfasıdır...

Eğer bu adımları doğru bir şekilde yaparsan Hakkında'ya tıklandığı takdirde

Burası Hakkında Sayfasıdır...

Uyarılarını alıcaksın. Genel olarak sayfalama bu şekildedir.

Bu sayede tek sayfa ile birden fazla sayfan varmış gibi hareket edebilirsin.
Fakat genelde sayfamalada link kısmında bir verinin id'si gibi (veya başka önemli bilgiler) verilerini yazıdırıyorsan belli başlı güvenlik önlemleri alman gerekmektedir.

Kolay gelsin.

rephp7
1091 gün önce

bu konudan
makifgokce'nin cevabını okumanı tavsiye ederim.
Ben kullandım, güzel oldu. Kendisine tekrar teşekkür ederim.

phpstring
1091 gün önce

Böyle bir listele.php sayfası olduğunu varsayalım.

<?php

$sayfa_no = $_GET["sayfa"] ?? "1"; // sayfa adında get değerini aldık,eğer değer yoksa 1'e eşitledik.

$veri_goster = 10; // sayfada kaç adet veri göstereceğimizi belirledik.

$lowerLimit = ($sayfa_no - 1) * $veri_goster; /* kaçıncı veriden başlayacağımızı bulmak için önce sayfa sayısından 1 çıkardık,
ardından toplam göstereceğimiz veri ile çarptık.

/* veritabanı bağlantısını yaptığınızı varsayarak $baglan değişkeni ile veritabanına sorgu gönderiyoruz. (bağlantıyı hangi
değişkenle yaptıysanız onu yazın.) */

$veriler = $baglan->query("SELECT * FROM veri_tablosu LIMIT $lowerLimit,$veri_goster")->fetchAll();

// foreach döngüsü ile verileri yansıtıyoruz

foreach($veriler as $veri){
    echo $veri["veri_satir"];
}

http://example.com/listele.php?sayfa=1 şeklinde sayfaya erişebilirsiniz.