PHP 8 ile sayfalama linkleri oluşturmak, kullanıcıların belirli sayfalara kolayca geçiş yapmalarını sağlar. Sayfalama bağlantıları, kullanıcı deneyimini artırmak ve büyük veri setlerini daha erişilebilir hale getirmek için önemlidir. İşte PHP 8 ile sayfalama linklerini oluşturmanın detaylı bir açıklaması:
1. Sayfa Bilgilerini Hazırlama
Öncelikle, toplam kayıt sayısını ve sayfa başına gösterilecek kayıt sayısını belirleyin. Daha sonra, toplam sayfa sayısını hesaplayın.
$totalRows = 100; // Örnek toplam kayıt sayısı
$limit = 10; // Sayfa başına gösterilecek kayıt sayısı
$totalPages = ceil($totalRows / $limit); // Toplam sayfa sayısı
2. Aktif Sayfayı Belirleme
Kullanıcının hangi sayfada olduğunu belirlemek için bir GET parametresi kullanın. Eğer GET parametresi yoksa varsayılan olarak 1. sayfayı gösterin.
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max($page, 1); // Sayfa numarasını 1 veya daha büyük yap
3. Sayfalama Linklerini Oluşturma
Sayfalama linklerini oluşturmak için bir döngü kullanarak her sayfa için bir bağlantı oluşturun. Aktif sayfayı vurgulamak için özel bir sınıf ekleyebilirsiniz.
echo "<ul class='pagination'>";
for ($i = 1; $i <= $totalPages; $i++) {
if ($i === $page) {
echo "<li class='active'>$i</li>"; // Aktif sayfa için stil
} else {
echo "<li><a target="_blank" href='?page=$i'>$i</a></li>"; // Diğer sayfalar için bağlantılar
}
}
echo "</ul>";
4. Önceki ve Sonraki Sayfa Linkleri
Kullanıcıların bir önceki ve sonraki sayfaya geçiş yapabilmesi için "Önceki" ve "Sonraki" bağlantıları ekleyebilirsiniz.
echo "<ul class='pagination'>";
// Önceki sayfa bağlantısı
if ($page > 1) {
echo "<li><a target="_blank" href='?page=" . ($page - 1) . "'>Önceki</a></li>";
}
// Sayfa numarası bağlantıları
for ($i = 1; $i <= $totalPages; $i++) {
if ($i === $page) {
echo "<li class='active'>$i</li>"; // Aktif sayfa için stil
} else {
echo "<li><a target="_blank" href='?page=$i'>$i</a></li>"; // Diğer sayfalar için bağlantılar
}
}
// Sonraki sayfa bağlantısı
if ($page < $totalPages) {
echo "<li><a target="_blank" href='?page=" . ($page + 1) . "'>Sonraki</a></li>";
}
echo "</ul>";
5. Tam Örnek
Aşağıda yukarıdaki adımları birleştiren tam bir örnek bulunmaktadır:
<?php
// Veritabanı bağlantısı
$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);
// Toplam kayıt sayısını alma
$stmt = $pdo->query("SELECT COUNT(*) FROM tablo_adi");
$totalRows = $stmt->fetchColumn();
// Sayfa başına kayıt sayısını ve toplam sayfa sayısını hesaplama
$limit = 10;
$totalPages = ceil($totalRows / $limit);
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max($page, 1);
$offset = ($page - 1) * $limit;
// Verileri çekme
$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);
// Verileri görüntüleme
foreach ($results as $row) {
echo "<p>{$row['column_name']}</p>"; // 'column_name' yerine uygun sütun adını yazın
}
// Sayfalama bağlantılarını oluşturma
echo "<ul class='pagination'>";
// Önceki sayfa bağlantısı
if ($page > 1) {
echo "<li><a target="_blank" href='?page=" . ($page - 1) . "'>Önceki</a></li>";
}
// Sayfa numarası bağlantıları
for ($i = 1; $i <= $totalPages; $i++) {
if ($i === $page) {
echo "<li class='active'>$i</li>"; // Aktif sayfa için stil
} else {
echo "<li><a target="_blank" href='?page=$i'>$i</a></li>"; // Diğer sayfalar için bağlantılar
}
}
// Sonraki sayfa bağlantısı
if ($page < $totalPages) {
echo "<li><a target="_blank" href='?page=" . ($page + 1) . "'>Sonraki</a></li>";
}
echo "</ul>";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
?>
Sonuç
Bu örnek, PHP 8 kullanarak sayfalama linklerinin nasıl oluşturulacağını göstermektedir. Kullanıcılar, sayfa numaralarına tıklayarak veriler arasında gezinebilir ve "Önceki" ve "Sonraki" bağlantıları sayesinde daha iyi bir deneyim yaşayabilir. Bu yöntem, büyük veri setleriyle çalışırken kullanıcıların verilere erişimini kolaylaştırır.