SAYFALAMA
Sayfalama yapmak için genellikle bir veritabanından büyük miktarda veri çektiğinizde veya bir liste veya sonuç kümesini kullanıcıya gösterirken kullanılır. Bu, büyük veri kümelerini kullanıcıya daha kolay ve daha hızlı bir şekilde sunmanıza olanak tanır. PHP ile sayfalama yapmanın birkaç farklı yöntemi vardır, ancak en yaygın olanı sayfa numaraları veya "önceki/sonraki" düğmeleri kullanmaktır.
İşte PHP ile sayfalama yapmanın basit bir örneği:
Adım 1: Veritabanından Veri Alın
Öncelikle, veritabanından veri almanız gerekecek. Bu örnekte, basit bir MySQL veritabanı kullanacağız. Örneğin, bir blog gönderisi listesi alalım:
PHP:
<?php
// Veritabanı bağlantısı
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
// Hata kontrolü
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
// Veri çekme sorgusu
$sql = "SELECT * FROM blog_posts";
$result = $conn->query($sql);
// Verileri döngüyle görüntüleme
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Başlık: " . $row["title"]. "<br>";
}
} else {
echo "0 sonuç";
}
// Veritabanı bağlantısını kapatma
$conn->close();
?>
Adım 2: Sayfalama İşlemini Gerçekleştirin
Daha sonra, veritabanından alınan veriyi sayfalama işlemiyle düzenlemeniz gerekecek. Bu, kullanıcının hangi sayfa numarasında olduğunu izlemek ve sadece belirli bir sayfa numarasındaki verileri görüntülemek anlamına gelir. Örneğin, her sayfada 10 gönderi gösterelim:
PHP:
<?php
// Sayfa numarasını belirleme
$page = isset($_GET['page']) ? $_GET['page'] : 1;
// Gösterilecek sonuç sayısı
$results_per_page = 10;
// Veritabanı bağlantısı
// ...
// Sorgu oluşturma
$limit_start = ($page - 1) * $results_per_page;
$sql = "SELECT * FROM blog_posts LIMIT $limit_start, $results_per_page";
$result = $conn->query($sql);
// Sonuçları döngüyle görüntüleme
// ...
// Sayfalama bağlantıları oluşturma
$sql = "SELECT COUNT(*) AS total FROM blog_posts";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_pages = ceil($row["total"] / $results_per_page);
// Önceki ve sonraki sayfa bağlantılarını oluşturma
echo "<a href='?page=1'>İlk Sayfa</a> ";
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='?page=".$i."'>".$i."</a> ";
}
echo "<a href='?page=$total_pages'>Son Sayfa</a>";
?>