<?
 
##############################################
 
# Shiege Iseng paging Class
 
# 04 Feb 2004
 
# shiegege at yahoo.com
 
# http://shiege.com/scripts/paging/
 
################
 
# Thanks to :
 
# Yngve Bergheim <yngvewb at hotmail.com>
 
##############################################
 
 
class paging
 
{
 
    var $koneksi;
 
    var $p;
 
    var $page;
 
    var $q;
 
    var $query;
 
    var $next;
 
    var $prev;
 
    var $number;
 
 
    function paging($baris=5, $langkah=5, $prev="[prev]", $next="[next]", $number="[%%number%%]")
 
    {
 
        $this->next=$next;
 
        $this->prev=$prev;
 
        $this->number=$number;
 
        $this->p["baris"]=$baris;
 
        $this->p["langkah"]=$langkah;
 
        $_SERVER["QUERY_STRING"]=preg_replace("/&page=[0-9]*/","",$_SERVER["QUERY_STRING"]);
 
        if (empty($_GET["page"])) {
 
            $this->page=1;
 
        } else {
 
            $this->page=$_GET["page"];
 
        }
 
    }
 
 
    function db($host,$username,$password,$dbname)
 
    {
 
        $this->koneksi=mysql_pconnect($host, $username, $password) or die("Connection Error");
 
        mysql_select_db($dbname);
 
        return $this->koneksi;
 
    }
 
 
    function query($query)
 
    {
 
        $kondisi=false;
 
        // only select
 
        if (!preg_match("/^[\s]*select*/i",$query)) {
 
            $query="select ".$query;
 
        }
 
 
        $querytemp = mysql_query($query);
 
        $this->p["count"]= mysql_num_rows($querytemp);
 
 
        // total page
 
        $this->p["total_page"]=ceil($this->p["count"]/$this->p["baris"]);
 
 
        // filter page
 
        if  ($this->page<=1)
 
            $this->page=1;
 
        elseif ($this->page>$this->p["total_page"])
 
            $this->page=$this->p["total_page"];
 
 
        // awal data yang diambil
 
        $this->p["mulai"]=$this->page*$this->p["baris"]-$this->p["baris"];
 
 
        $query=$query." limit ".$this->p["mulai"].",".$this->p["baris"];
 
 
        $query=mysql_query($query) or die("Query Error");
 
        $this->query=$query;
 
    }
 
    
 
    function result()
 
    {
 
        return $result=mysql_fetch_object($this->query);
 
    }
 
 
    function result_assoc()
 
    {
 
        return mysql_fetch_assoc($this->query);
 
    }
 
 
    function print_no()
 
    {
 
        $number=$this->p["mulai"]+=1;
 
        return $number;
 
    }
 
    
 
    function print_color($color1,$color2)
 
    {
 
        if (empty($this->p["count_color"]))
 
            $this->p["count_color"] = 0;
 
        if ( $this->p["count_color"]++ % 2 == 0 ) {
 
            return $color=$color1;
 
        } else {
 
            return $color=$color2;
 
        }
 
    }
 
 
    function print_info()
 
    {
 
        $page=array();
 
        $page["start"]=$this->p["mulai"]+1;
 
        $page["end"]=$this->p["mulai"]+$this->p["baris"];
 
        $page["total"]=$this->p["count"];
 
        $page["total_pages"]=$this->p["total_page"];
 
            if ($page["end"] > $page["total"]) {
 
                $page["end"]=$page["total"];
 
            }
 
            if (empty($this->p["count"])) {
 
                $page["start"]=0;
 
            }
 
 
        return $page;
 
    }
 
 
    function print_link()
 
    {
 
        //generate template
 
        function number($i,$number)
 
        {
 
            return ereg_replace("^(.*)%%number%%(.*)$","\\1$i\\2",$number);
 
        }
 
        $print_link = false;
 
 
        if ($this->p["count"]>$this->p["baris"]) {
 
 
            // print prev
 
            if ($this->page>1)
 
            $print_link .= "<a href=\"".$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]."&page=".($this->page-1)."\">".$this->prev."</a>\n";
 
 
            // set number
 
            $this->p["bawah"]=$this->page-$this->p["langkah"];
 
                if ($this->p["bawah"]<1) $this->p["bawah"]=1;
 
 
            $this->p["atas"]=$this->page+$this->p["langkah"];
 
                if ($this->p["atas"]>$this->p["total_page"]) $this->p["atas"]=$this->p["total_page"];
 
 
            // print start
 
            if ($this->page<>1)
 
            {
 
                for ($i=$this->p["bawah"];$i<=$this->page-1;$i++)
 
                    $print_link .="<a href=\"".$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]."&page=$i\">".number($i,$this->number)."</a>\n";
 
            }
 
            // print active
 
            if ($this->p["total_page"]>1)
 
                $print_link .= "<b>".number($this->page,$this->number)."</b>\n";
 
 
            // print end
 
            for ($i=$this->page+1;$i<=$this->p["atas"];$i++)
 
            $print_link .= "<a href=\"".$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]."&page=$i\">".number($i,$this->number)."</a>\n";
 
 
            // print next
 
            if ($this->page<$this->p["total_page"])
 
            $print_link .= "<a href=\"".$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]."&page=".($this->page+1)."\">".$this->next."</a>\n";
 
 
            return $print_link;
 
        }
 
    }
 
}
 
?>
 
 |