PHP ile sayfalama

PHP ile sayfalama, büyük miktarda veriye sahip web sitelerinde kullanıcı deneyimini iyileştirmek için sıkça kullanılan bir tekniktir. Sayfalama, tek seferde tüm verileri yüklemek yerine, sayfalar halinde verileri yüklemek ve kullanıcının istediği sayfaya gitmesine izin vermek anlamına gelir. PHP’de sayfalama için birkaç farklı yöntem vardır. İşte, bunlardan bazıları:

1. LIMIT Kullanarak Sayfalama

SQL sorgularınızda LIMIT anahtar kelimesini kullanarak sayfalama yapabilirsiniz. LIMIT anahtar kelimesi, hangi kayıtların döndürüleceğini belirler. Aşağıdaki örnek, test_table adlı tablodaki kayıtları sayfalama yaparak almak için kullanılabilir.

$per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$start_from = ($page-1) * $per_page;
$sql = "SELECT * FROM test_table LIMIT $start_from, $per_page";

Bu örnekte, $per_page değişkeni her sayfada gösterilecek kayıt sayısını belirler. Daha sonra, $page değişkeni kullanıcının görüntülemek istediği sayfa numarasını belirler. isset() fonksiyonu, eğer sayfa numarası belirtilmemişse varsayılan olarak 1’i kullanır. Son olarak, $start_from değişkeni, hangi kayıttan başlayacağımızı belirler.

2. MySQL FOUND_ROWS() Kullanarak Sayfalama

MySQL FOUND_ROWS() fonksiyonunu kullanarak sayfalama yapabilirsiniz. Bu fonksiyon, SELECT SQL_CALC_FOUND_ROWS ifadesi kullanılarak yapılan bir sorgudan kaç satırın etkilendiğini hesaplar.

$per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$start_from = ($page-1) * $per_page;

// Kayıt sayısını alma
$sql_count = "SELECT SQL_CALC_FOUND_ROWS * FROM test_table LIMIT $start_from, $per_page";
$result_count = $conn->query($sql_count);
$count = $conn->query("SELECT FOUND_ROWS()")->fetchColumn();

// Sayfalama bağlantıları oluşturma
$total_pages = ceil($count / $per_page); // Toplam sayfa sayısını hesaplama
for ($i=1; $i<=$total_pages; $i++) {
    echo "<a href='index.php?page=$i'>$i</a>";
}

Bu örnekte, SQL_CALC_FOUND_ROWS ifadesi kullanarak sorgunun toplam satır sayısını hesaplıyoruz. Daha sonra, FOUND_ROWS() fonksiyonu kullanarak toplam satır sayısını hesaplıyoruz. Son olarak, sayfalama bağlantıları oluşturmak için total_pages değişkenini kullanıyoruz.

3. Pager Class Kullanarak Sayfalama

Pager sınıfları, sayfalama işlemini otomatikleştiren hazır kod parçacıklarıdır. Pager sınıflarının çoğu, bir veritabanı bağlantısı üzerinden çalışır ve çok sayıda seçenek sunar. PEAR gibi kütüphane yöneticileri, PHP sayfalama sınıflarını içeren paketleri sağlar. Örneğin, Pager sınıfını kullanarak sayfalama yapabilirsiniz.

require_once 'Pager/Pager.php';
$params = array(
    'mode' => 'Jumping',
    'perPage' => 10,
    'urlVar' => 'page'
);
$pager = & Pager::factory($params);
$data = $pager->getPageData();
foreach ($data as $row) {
    echo $row['name'] . "<br />";
}
echo $pager->links;

Bu örnekte, Pager sınıfını kullanarak sayfalama bağ

lantılarını ve sayfaların içeriğini görüntülüyoruz. $params dizisinde, sayfalama ayarları belirtilir. ->getPageData() fonksiyonu ile her sayfa için verileri elde ederiz ve bu verileri döngü yardımıyla görüntüleriz. Son olarak, ->links özelliği kullanarak sayfalama bağlantılarını gösteririz.

Pager sınıfları, sayfalama işlemini oldukça basit hale getirirler. Ancak, bazı durumlarda karmaşık sorgular içinde kullanımı zor olabilir.

Bu yöntemlerden herhangi birini kullanarak PHP’de sayfalama yapabilirsiniz. Ancak, sayfalama işleminin performansı etkileyebileceğini unutmayın. Büyük miktarda veri içeren sitelerde sayfalama yaparken, sorguların optimize edilmesi önemlidir.

Previous Article

PHP .htaccess kullanımı

Next Article

PHP ile SMTP’den mail gönderme

Write a Comment

Leave a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir