tempobet

Php Pdo Sayfalama Yapmak

Merhabalar bu dersimizde php fonksiyonlarından LIMIT kullanarak kolayca verilerimizi sayfalayabiliriz.

öncelikle sayfalama mantığını anlamak için kısaca özetleyelim

$toplamVeri = $db->query("SELECT COUNT(*) FROM veriler")->fetchColumn(); // Tabloda kaç tane kayıt olduğunu buluyoruz
$goster = 3; // Her sayfada kaç veri görünsün
$toplamSayfa = ceil($toplamVeri / $goster);  // Toplam sayfa sayımızı buluyoruz sonucu yuvarlıyoruz
$sayfa = $_GET["s"]; // Sayfa numaramızı get metodu ile yolladığımız "s" değeri ile alıyoruz
if($sayfa < 1) $sayfa = 1; // Eğer kullanıcı sayfa numarasına 1'den küçük değer girerse 1.sayfayı gösteriyoruz
if($sayfa > $toplamSayfa) // Eğer kullanıcı sayfa numarasına toplam sayfadan daha fazla değer girerse en son sayfayı gösteriyoruz
{
    $sayfa = (int)$toplamSayfa;
}
$limit = ($sayfa - 1) * $goster;  // Veri tabanında listelemme yaparken limit ile kaçıncı veriden başladığını belirtiyoruz.

Burada kodlarımızı tanıdık açıklamlarınıda yazmış olduk Artık veritabanından verilerimizi çekebliriz.

$veriler = $db->prepare("SELECT * FROM veriler LIMIT :basla, :bitir");
$veriler->bindValue(":basla",$limit,PDO::PARAM_INT);
$veriler->bindValue(":bitir",$goster,PDO::PARAM_INT);
$veriler->execute();
$dizi = $veriler->fetchAll(PDO::FETCH_OBJ);

Verilerimizi çektik ve artık sayfamıza yazdırmaya geldi sıra foreach kullnarak içeriğimizin başlık ve detayını sayfamıza yazdırdık

foreach ($dizi as $item) {
?>
<div class="icerik">
<h2><?php echo $item->baslik;?></h2>
<p><?php echo $item->icerik;?></p>
</div>
<hr>
<?php } ?>

Artık sayfalama ya geçelim ve sayfa butonlarımızı yazıpsayfamızı tanımlayalım

<ul class="sayfalama">
<?php 
for($i = 1; $i<=$toplamSayfa;$i++)
{
?>
<li><a href="index.php?s=<?php echo $i;?>"><?php echo $i;?></a></li>
<?php } ?>
</ul>

son halimiz toparlarsak aşağıdaki gibi herkese kolay gelsin

<?php 
require_once("baglan.php"); // Veritabanı bağlantı dosyası
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Anasayfa</title>
	<style>
		ul li{list-style: none;}
		ul.sayfalama li{float:left;}
		ul.sayfalama li a{background:#403f3f;text-decoration:none;color:#c8c6c6;display:block;padding:7px;margin:7px;}
	</style>
</head>
<body>
	
	<?php 
	$toplamVeri = $db->query("SELECT COUNT(*) FROM veriler")->fetchColumn();
	$goster = 3;
	$toplamSayfa = ceil($toplamVeri / $goster);
	$sayfa = $_GET["s"];
	if($sayfa < 1) $sayfa = 1; 
	if($sayfa > $toplamSayfa)
	{
		$sayfa = (int)$toplamSayfa;
	}
	$limit = ($sayfa - 1) * $goster;

	$veriler = $db->prepare("SELECT * FROM veriler LIMIT :basla, :bitir");
	$veriler->bindValue(":basla",$limit,PDO::PARAM_INT);
	$veriler->bindValue(":bitir",$goster,PDO::PARAM_INT);
	$veriler->execute();
	$dizi = $veriler->fetchAll(PDO::FETCH_OBJ);
	foreach ($dizi as $item) {
		?>
		<div class="icerik">
			<h2><?php echo $item->baslik;?></h2>
			<p><?php echo $item->icerik;?></p>
		</div>
		<hr>
		<?php
	}
	?>
	
	<ul class="sayfalama">
		<?php 
		for($i = 1; $i<=$toplamSayfa;$i++)
		{
			?>
			<li><a href="index.php?s=<?php echo $i;?>"><?php echo $i;?></a></li>
			<?php
		}
		?>

	</ul>

</body>
</html>
escort malatya escort bursa escort antalya escort konya mersin escort