Mysqli ile Sayfalamayı Nasıl Yapabilirim?
Merhaba arkadaşlar. İnternette hep pdo ile ilgili sayfalama örnekleri var. Çok karmaşık olmayan sayfalama örneklerini bulamadım. Acaba bir sayfalama örneği var mı elinizde.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
mysqli ile yaparsan ki çoğu mysqli yazanların siteleri açık dolu mysqli ile pdo arasında ufacık fark var ama pdo kesinlikle daha güvenli
$post=$_POST['deger'];
$list=$db->query("SELECT * FROM sayfa WHERE id=$post"); sanırım mysqli bu şekilde yazılıyor
BUDA PDO VERSIYONU fazla bir fark yok
$list=$db->prepare("SELECT * FROM sayfa WHERE id=?");
$list->execute([$post]);
KISACASI HIZ KAYBETMEDEN PDO YA DÖN
Yok pdo karışık değil. Bende pdo ile çalışan sayfalama örneği var. Ben mysqli ile yapmayı öğrenmek istiyorum. "mysqli" ile yapılan birkaç tane örnek buldum. Ama bana biraz karmaşık geldi. Ben mysqli ile yapılan arıyorum. Yine de teşekkür ederim. :)
Pdonun neresi karışık ki bir örnek bırakayım
<?php
$sayfada = SAYFADA KAÇ ADET OLACAK BELİRT - 10 VEYA 16 GİBİ;
$sorgu=$db->prepare("SELECT * from tabloadin");
$sorgu->execute();
$toplam_icerik=$sorgu->rowCount();
$toplam_sayfa = ceil($toplam_icerik / $sayfada);
$sayfa = isset($_GET['sayfa']) ? (int) $_GET['sayfa'] : 1;
if($sayfa < 1) $sayfa = 1;
if($sayfa > $toplam_sayfa) $sayfa = $toplam_sayfa;
$limit = ($sayfa - 1) * $sayfada;
$x=$db->prepare("SELECT * FROM tabloadin WHERE tabloid DESC limit $limit,$sayfada");
$x->execute();
?>
Sayfalatma İşlemi
<?php
$s=0;
while ($s < $toplam_sayfa) {
$s++; ?>
<?php
if ($s==$sayfa) {?>
<li class="page-item">
<a class="page-link" href="sayfa.php?sayfa=<?php echo $s; ?>">
<?php echo $s; ?>
</a>
</li>
<?php } else {?>
<li class="page-item">
<a class="page-link" href="sayfa.php?sayfa=<?php echo $s; ?>">
<?php echo $s; ?>
</a>
</li>
<?php } }
?>
Sayfadaki problemin resmini koyuyorum. "0" var, "-1" var. Geri gittikçe eksilere gidiyor sayfa.
https://www.hizliresim.com/m5mm9zv
Arkadaşlar şöyle bir kod buldum. Çalışıyor ama -1,-2-,-3 gibi geriye doğru ilerliyor ve 4. sayfa olmamasına rağmen ileriye doğru gidiyor. Bir de diyelim ki -2. sayfadayım. En soldaki "<<" işaretine tıkladığımda ilk sayfaya atıyor, bu iyi ama ileriye doğru bir sayfadayken mesela 2,3,4 vs. "sıfır" ıncı sayfaya atıyor. Halbuki benim verilerim 1. sayfadan başlıyor. Sayfaların eksiye gitmesini ve "sıfırıncı" sayfaya gitmesini nasıl önleyebilirim.
<?php
$gosterilecek_toplam_veri = 10;
// Veritabanındaki kayıt sayısını bul
$sql='SELECT * FROM hakkimizda';
$sonuc = mysqli_query($conn, $sql);
$sonuc_sayisi = mysqli_num_rows($sonuc);
$sayfa_numarasi = ceil($sayfa_numarasi/$gosterilecek_toplam_veri);
// Şu anda açık ziyaretçi sayfasını belirle
if (!isset($_GET['page'])) {
$sayfa = 1;
} else {
$sayfa = $_GET['page'];
}
// gösterilen sayfanın sonuçları için numara belirle
$bu_sayfanin_sonuclari = ($sayfa-1)*$gosterilecek_toplam_veri;
$sql='SELECT * FROM hakkimizda LIMIT ' . $bu_sayfanin_sonuclari . ',' . $gosterilecek_toplam_veri;
$sonuc = mysqli_query($conn, $sql);
?>
<div class="right_col" role="main">
<div style="width:100%; height:600px;">
<div style="width:100%; height:37px; line-height:30px; margin-top:40px; background:#4b7096;
font-size:16px; color:#fff; text-align:center; font-weight:bold;">Hakkımızda Yazısı Listesi
</div>
<div style="width:70%; height:37px; line-height:37px; margin-top:3px; background:#4b7096; font-size:16px;
color:#fff; text-align:center; font-weight:bold; float:left;">Hakkımızda İçerik
</div>
<div style="width:30%; height:37px; line-height:37px; margin-top:3px; background:#4b7096; font-size:16px;
color:#fff; text-align:center; font-weight:bold; margin-left:70%;">Düzenle - Sil
</div>
<?php while($row = mysqli_fetch_array($sonuc)) {
?>
<div style="width:70%; height:37px; line-height:37px; margin-top:3px; background:#4b7096; font-size:14px;
color:#fff; text-align:center; float:left;" name="hakkimizdaadi">
<?php echo substr($hakkimizda['hakkimizda_icerik'],0,155); ?></div>
<div style="width:30%; height:37px; line-height:37px; margin-top:3px; background:#4b7096; font-size:16px;
color:#fff; text-align:center; font-weight:bold; margin-left:70%;">
<a href="hakkimizdaduzenle.php?hakkimizdaduzenle=<?php echo $hakkimizda['hakkimizda_id']; ?>">
<img src="../../../images/icons/edit.png" title="Düzenle" />
</a>
<a href="hakkimizdasil.php?hakkimizdasil=<?php echo $hakkimizda['hakkimizda_id']; ?>">
<img src="../../../images/icons/delete.png" style="padding-left:25px;" title="Sil"/>
</a>
</div>
<?php } ?>
<?php
$onceki1 = $sayfa-2;
$onceki = $sayfa-1;
$ileri = $sayfa+1;
$ileri1 = $sayfa+2;
echo '
<nav aria-label="Page navigation example">
<ul class="pagination justify-content">
<li class="page-item">
<a class="page-link" href="hakkimizdayazisilistele.php?page=1" tabindex="1">«</a>
</li>
<li class="page-item">
<a class="page-link" href="hakkimizdayazisilistele.php?page='.$onceki.'" tabindex="-1">Geri</a>
</li>
<li class="page-item"><a class="page-link" href="hakkimizdayazisilistele.php?page='.$onceki1.'">'.$onceki1.'</a></li>
<li class="page-item"><a class="page-link" href="hakkimizdayazisilistele.php?page='.$onceki.'">'.$onceki.'</a></li>
<li class="page-item"><a style="background-color: #ddd;" class="page-link" href="hakkimizdayazisilistele.php?page='.$sayfa.'">'.$sayfa.'</a></li>
<li class="page-item"><a class="page-link" href="hakkimizdayazisilistele.php?page='.$ileri.'">'.$ileri.'</a></li>
<li class="page-item"><a class="page-link" href="hakkimizdayazisilistele.php?page='.$ileri1.'">'.$ileri1.'</a></li>
<li class="page-item">
<a class="page-link" href="hakkimizdayazisilistele.php?page='.$ileri.'">İleri</a>
</li>
<li class="page-item">
<a class="page-link" href="hakkimizdayazisilistele.php?page='.$sayfa_numarasi.'">»</a>
</li>
</ul>
</nav>';
?>