include('uri.php');
class pagination {
var $fullresult;
var $totalresult;
var $query;
var $resultPerPage;
var $resultpage;
var $pages;
var $openPage;
function createPaging($query,$resultPerPage)
{
$uri = new uri;
$uri->fetch_uri_string();
$uri->explode_segments();
$page = $uri->segment(0);
$this->query = $query;
$this->resultPerPage= $resultPerPage;
$this->fullresult = mysql_query($this->query);
$this->totalresult = mysql_num_rows($this->fullresult);
$this->pages = $this->findPages($this->totalresult,$this->resultPerPage);
if(isset($page) && $page>0) {
$this->openPage = $page;
if($this->openPage > $this->pages) {
$this->openPage = 1;
}
$start = $this->openPage*$this->resultPerPage-$this->resultPerPage;
$end = $this->resultPerPage;
$this->query.= " LIMIT $start,$end";
}
elseif($page>$this->pages) {
$start = $this->pages;
$end = $this->resultPerPage;
$this->query.= " LIMIT $start,$end";
}
else {
$this->openPage = 1;
$this->query .= " LIMIT 0,$this->resultPerPage";
}
$this->resultpage = mysql_query($this->query);
}
function findPages($total,$perpage)
{
$pages = intval($total/$perpage);
if($total%$perpage > 0) $pages++;
return $pages;
}
function displayPaging()
{
$self = $_SERVER['PHP_SELF'];
if($this->openPage<=0) {
$next = 2;
}
else {
$next = $this->openPage+1;
}
$prev = $this->openPage-1;
$last = $this->pages;
if($this->openPage > 1) {
echo "<a href=$self/1>First</a> ";
echo "<a href=$self/$prev>Prev</a> ";
}
else {
echo "First ";
echo "Prev ";
}
for($i=1;$i<=$this->pages;$i++) {
if($i == $this->openPage)
echo "$i ";
else
echo "<a href=$self/$i>$i</a> ";
}
if($this->openPage < $this->pages) {
echo "<a href=$self/$next>Next</a> ";
echo "<a href=$self/$last>Last</a> ";
}
else {
echo "Next ";
echo "Last ";
}
}
}
?>