Bu sınıf MySQL sorgu sonuçları için sayfalama bağlantılarını göstermek için kullanılabilir.
<?php class pagination { var $totalPage; var $currPage; var $userURL; var $dataStart; var $limit; var $query; var $dbLink; var $adjacent; var $linkAdjacent=1; function pagination($userURL,$dbLink,$query,$limit,$pageNumber){ $this->userURL=$userURL; $this->currPage=$pageNumber; $this->query=$query; $this->dbLink=$dbLink; $rs=mysql_query($query,$dbLink) or die("An error has occurred!"); $numData=mysql_num_rows($rs); $this->totalPage=round($numData / $limit); $this->adjacent=intval($this->totalPage/4); $this->dataStart=(($limit*$pageNumber)-$limit); $this->limit=$limit; } function recordSet(){ $query=$this->query . " LIMIT " . $this->dataStart . ", " . $this->limit . ";"; $rs=mysql_query($query,$this->dbLink); return $rs; } function pageLinkAdjacent($allow){ $this->linkAdjacent=$allow; } function pageLink(){ if (strpos($this->userURL, '&page')){ $url = substr_replace($this->userURL,"",strpos($this->userURL, '&page')); } else { $url=$this->userURL; } $link=""; for( $i=1; $i<=$this->totalPage; $i++ ){ if( $i == $this->currPage ){ $link .= "<b>". ($i) ."</b>"; } else { if ($this->linkAdjacent==1){ if ($this->totalPage>20 && $this->currPage<($this->adjacent*2)-3 && $i>($this->adjacent*2)-2 && $i<$this->totalPage-3){ $i=($this->totalPage-3); $link .= "<label>. . .</label>"; } if ($this->totalPage>20 && $this->currPage>=($this->adjacent*3) && $i<($this->adjacent*3)-3 && $i>3){ $i=($this->adjacent*3)-3; $link .= "<label>. . .</label>"; } if ($this->totalPage>20 && $this->currPage>=($this->adjacent*2) && $this->currPage<($this->adjacent*3) && $i<($this->adjacent*2)-2 && $i>2){ $i=($this->adjacent*2)-2; $link .= "<label>. . .</label>"; } if ($this->totalPage>20 && $this->currPage>=($this->adjacent*2)-3 && $this->currPage<=($this->adjacent*3)-4 && $i>($this->adjacent*3)-2 && $i<$this->totalPage-2){ $i=$this->totalPage-3; $link .= "<label>. . .</label>"; } } $link .= "<a href="". $url . "&page=" . ($i) . "">". ($i) ."</a>"; } } if ($this->currPage != 1){ $prev = "<a href="" . $url . "&page=" . ($this->currPage - 1) . "">". "<<" . "</a>"; $link = $prev . $link; } if ($this->currPage != $this->totalPage){ $next = "<a href="" . $url . "&page=" . ($this->currPage + 1) . "">". ">>" ."</a>"; $link = $link . $next; } return $link; } } ?>
Ustam bu class ı sanırım sadece veritabanından listeleme yaptığımızda sayfalamak için kullanabiliyoruz.
Bir de bir arama kriterine göre gelen sonuçları listelerken yapılabilecek sayfalama örneği vermeniz mümkünmü.
Daha da özetlersek ilk liste sayfasını oluşturduğumuzda post veya get le gelen arama kriterini nasıl diğer sayfalarda da çalışır hale getiririz.
Saygılar…