Wednesday, September 12, 2012

PHP class for simple pagination


<?php
class Pagination    {
    function __coustruct()  {
        parent::__construct();
    }

    function showPagination($query, $page = '1', $per_page = '10')   {
        $total = 0;
        $rst = $this->selectData($query);
        $total = mysql_num_rows($rst);
        $page = ($page == 0 ? 1 : $page);
        $start = ($page - 1) * $per_page;
        $prev = $page - 1;
        $next = $page + 1;
        $lastpage = ceil($total/$per_page);
        $lpm1 = $lastpage - 1;
        $pagination = '';
        $linktitle = 'Goto ';
        $page_url = $_SERVER['PHP_SELF'];
        if($lastpage > 1)   {
            $first  = '<<';
            $prev   = '<';
            $next   = '>';
            $last   = '>>';
            $pagination .= '<ul class="pagination">';
                $link = ($page != '1')?$page_url.'?p=1': '#';
                $pagination.= '<li><a href="'.$link.'" title="'.$linktitle.'First Page">'.$first.'</a></li>';
                if($link != '#')$link = $page_url.'?p='.((int)$page-1);
                $pagination.= '<li><a href="'.$link.'" title="'.$linktitle.'Previous Page">'.$prev.'</a></li>';
                for ($counter = 1; $counter <= $lastpage; $counter++)   {
                    if ($counter == $page)
                        $pagination.= '<li><a class="current">'.$counter.'</a></li>';
                    else
                        $pagination.= '<li><a href="'.$page_url.'?p='.$counter.'">'.$counter.'</a></li>';
                }
                $linklast = ($page != $lastpage)?$page_url.'?p='.$lastpage: '#';
                $link = ($linklast != '#')? $page_url.'?p='.((int)$page+1):'#';
                $pagination.= '<li><a href="'.$link.'" title="'.$linktitle.'Next Page">'.$next.'</a></li>';
                $pagination.= '<li><a href="'.$linklast.'" title="'.$linktitle.'Last Page">'.$last.'</a></li>';
                $pagination .= '<li class="details">Page <span>'.$page.'</span> of <span>'.$lastpage.'</span></li>';
                $pagination .= '<div class="clear"></div></ul>';
         
        }
        return $pagination;
    }
    function selectData($query)   {
        mysql_connect('localhost', 'root', 'password') or mysql_error();
        mysql_select_db('database') or mysql_error();
        $result = mysql_query($query) ;
        return ($result and mysql_num_rows($result))? $result : false;
    }
}
?>

No comments:

Post a Comment