Php 8 Sayfalama

Php 8 Sayfalama

PHP 8 ile sayfalama, büyük veri setlerini kullanıcı dostu bir şekilde görüntülemek için kullanılır. Sayfalama, genellikle veritabanlarından veri çekerken kullanılır ve verileri belirli sayfalara bölerek daha yönetilebilir hale getirir. İşte PHP 8 ile sayfalama yapmanın temel adımları ve örnek bir uygulama:

1. Veritabanı Bağlantısı

Öncelikle, bir veritabanına bağlanmanız gerekir. Bu örnekte MySQL kullanacağız.

<?php $host = 'localhost'; $db = 'veritabani_adi'; $user = 'kullanici_adi'; $pass = 'sifre'; try { $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo "Bağlantı hatası: " . $e->getMessage(); } ?>

2. Toplam Kayıt Sayısını Alma

Sayfalama yapmak için toplam kayıt sayısını bilmemiz gerekir.

<?php $stmt = $pdo->query("SELECT COUNT(*) FROM tablo_adi"); $totalRows = $stmt->fetchColumn(); ?>

3. Sayfa Başına Kayıt Sayısı

Sayfa başına kaç kayıt görüntülemek istediğinizi belirleyin.

$limit = 10; // Sayfa başına gösterilecek kayıt sayısı $totalPages = ceil($totalRows / $limit);

4. Aktif Sayfanın Belirlenmesi

Kullanıcının hangi sayfada olduğunu belirlemek için bir GET parametresi kullanabilirsiniz.

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $page = max($page, 1); // Sayfa numarasını 1 veya daha büyük yap $offset = ($page - 1) * $limit; // Offset hesaplama

5. Verileri Çekme

Veritabanından verileri sayfalara bölerek çekin.

$stmt = $pdo->prepare("SELECT * FROM tablo_adi LIMIT :limit OFFSET :offset"); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

6. Sayfaları Gösterme

Kullanıcıya sayfa bağlantılarını gösterin.

echo "<ul class='pagination'>"; for ($i = 1; $i <= $totalPages; $i++) { if ($i === $page) { echo "<li class='active'>$i</li>"; } else { echo "<li><a target="_blank" href='?page=$i'>$i</a></li>"; } } echo "</ul>";

Tam Örnek

Aşağıda yukarıdaki tüm adımları birleştiren bir örnek bulunmaktadır:

<?php $host = 'localhost'; $db = 'veritabani_adi'; $user = 'kullanici_adi'; $pass = 'sifre'; try { $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->query("SELECT COUNT(*) FROM tablo_adi"); $totalRows = $stmt->fetchColumn(); $limit = 10; $totalPages = ceil($totalRows / $limit); $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $page = max($page, 1); $offset = ($page - 1) * $limit; $stmt = $pdo->prepare("SELECT * FROM tablo_adi LIMIT :limit OFFSET :offset"); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($results as $row) { echo "<p>{$row['column_name']}</p>"; // 'column_name' yerine uygun sütun adını yazın } echo "<ul class='pagination'>"; for ($i = 1; $i <= $totalPages; $i++) { if ($i === $page) { echo "<li class='active'>$i</li>"; } else { echo "<li><a target="_blank" href='?page=$i'>$i</a></li>"; } } echo "</ul>"; } catch (PDOException $e) { echo "Hata: " . $e->getMessage(); } ?>

Sonuç

Bu örnekle, PHP 8 kullanarak veritabanından verileri sayfalama yöntemiyle çekmeyi öğrenmiş oldunuz. Sayfalama, kullanıcı deneyimini artırmak için önemli bir özelliktir ve büyük veri setleri ile çalışırken oldukça faydalıdır.



Yorum Ekle

Üzerine gel