Merhaba,
Veritabanından gelen verileri sayfalama konusunda örnek yazabilirmisiniz arkadaşlar?
PHP ile sayfalama hk.
2
●488
- 05-06-2015, 12:15:59<?php
$count = 10
if(@$request[2] == ""){
$page = 1;
}else{
$page = $request[2];
}
$page = ($page == 0 ? 1 : $page);
$recordsPerPage = 30;
$link = "";
$adjacents = "2";
$link = 'musteri_listesi/' ;
$start = ($page-1) * $recordsPerPage;
$sql = "select * from {tablo} limit $start,$recordsPerPage";
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($count/$recordsPerPage);
$lpm1 = $lastpage - 1;
$pagination = "";
if(!$end_link){
$end_link = "";
}
if($lastpage > 1){
if ($page > 1){
$pagination.= '<li><a href="'. $link . '1'. $end_link . '" data-action="refresh">« İlk </a></li>';
$pagination.= '<li><a href="' . $link . $prev . $end_link . '" data-action="refresh">« Geri </a></li>';
}else{
$pagination.= "<li><span class='disabled'>« İlk </span></li>";
$pagination.= "<li><span class='disabled'>« Geri </span></li>";
}
if ($lastpage < 7 + ($adjacents * 2)){
for ($counter = 1; $counter <= $lastpage; $counter++){
if ($counter == $page){
$pagination.= '<li class="active"><a>' . $counter . '</a></li>';
}else{
$pagination.= '<li><a href="' . $link . $counter . $end_link . '" data-action="refresh">' . $counter. '</a></li>';
}
}
}elseif($lastpage > 5 + ($adjacents * 2)){
if($page < 1 + ($adjacents * 2)){
for($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if($counter == $page){
$pagination.= '<li class="active"><a>' . $counter . '</a></li>';
}else{
$pagination.= '<li><a href="' . $link . $counter . $end_link . '" data-action="refresh">' . $counter . '</a></li>';
}
}
$pagination.= '<li><a class="disabled">...</a></li>';
$pagination.= '<li><a href="' . $link . $lpm1 . $end_link . ' " data-action="refresh">' . $lpm1 . '</a></li>';
$pagination.= '<li><a href="' . $link . $lastpage . $end_link . '" data-action="refresh">' . $lastpage . '</a></li>';
}elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)){
$pagination.= '<li><a href="' . $link . '1' . $end_link . '" data-action="refresh">1</a></li>';
$pagination.= '<li><a href="' . $link . '2' . $end_link . '" data-action="refresh">2</a></li>';
$pagination.= '<li><a class="disabled">...</a></li>';
for($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if($counter == $page)
$pagination.= '<li class="active"><span class="current">'. $counter . '</span></li>';
else
$pagination.= '<li><a href="' . $link . $counter . $end_link . '" data-action="refresh">' . $counter . '</a></li>';
}
$pagination.= '<li><a class="disabled">..</a></li>';
$pagination.= '<li><a href="' . $link . $lpm1 . $end_link . '" data-action="refresh">' . $lpm1 . '</a></li>';
$pagination.= '<li><a href="' . $link . $lastpage . $end_link . '" data-action="refresh">' . $lastpage . '</a></li>';
}else{
$pagination.= '<li><a href="' . $link . '1' . $end_link . '" data-action="refresh">1</a></li>';
$pagination.= '<li><a href="' . $link . '2' . $end_link . '" data-action="refresh">2</a></li>';
$pagination.= '<li><a class="disabled">..</a></li>';
for($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if($counter == $page)
$pagination.= '<li class="active"><span class="current">' . $counter . '</span></li>';
else
$pagination.= '<li><a href="' . $link . $counter . $end_link . '" data-action="refresh">' . $counter . '</a></li>';
}
}
}
if($page < $counter - 1){
$pagination.= '<li><a href="' . $link . $next . $end_link . '" data-action="refresh">İleri »</a></li>';
$pagination.= '<li><a href="' . $link . $lastpage . $end_link . '" data-action="refresh">Son</a></li>';
}else{
$pagination.= "<li><span class='disabled' >İleri »</span></li>";
$pagination.= "<li><span class='disabled'>Son ></span></li>";
}
}
?> - 05-06-2015, 13:02:11Buradaki sınıfı kullanarak basit şekilde öğeleri sayfalayabilirsin.
Kullanımı zaten bağlantıdaki sayfada mevcut ama kısaca bahsedeyim:
require 'sayfalama.sinifi.php'; $sayfalama = new Paginator(10,'sayfa'); // Bir sayfadaki gönderi sayısı 10, $_GET değeri 'sayfa' $sayfalama->set_total('100'); // Toplam gönderi sayısı $sorgu = 'SELECT * FROM ogeler ' . $sayfalama->get_limit(); // Öğeleri listele echo $sayfalama->page_links(); // Sayfa numaralarını gösterogeler.php?sayfa=5 gibi ya da ogeler?sayfa=5 vb.