Código PHP:
        /**
     * Retorna el indice dentro del Result Set del primer
     * elemento de la página actual.
     * 
     * @since 26/02/2002 12:00:12 p.m.
     * @return 
     **/
    function desde()
    {
        return (($this->pagina()-1)*$this->porPagina())+1;
    } // function
    
    /**
     * Retorna el índice dentro del Result Set del último
     * elemento de la página actual.
     *
     * @since 26/02/2002 12:18:08 p.m.
     * @return 
     **/
    function hasta()
    {
        return ($this->desde()-1)+$this->registros();
    } // function
    
    /**
     * Ejecuta el Query el base, averiguando previamente la cantidad total de 
     * registros que devuelve la consulta
     *
     * @access public
     * @since 25/02/2002 05:31:59 p.m.
     **/
    function query($query)
    {
        // Primero modificamos el query para averiguar la cantidad total
        // de registros que devuelve el query.
        $query_count = eregi_replace("select (.*) from", "SELECT COUNT(*) FROM",$query);
        if(!$this->rs( @mysql_query($query_count, $this->conn()) ))
        {
            $this->error("Ocurrió un error al ejecutar el query <i><b>\"$query_count\"</b></i>. La base dijo : <b>".mysql_error()."</b>.");
            return false;
        }// Fin If
        $this->total( mysql_result($this->rs(), 0) );
        $this->totalPaginas(ceil($this->total() / $this->porPagina()));
 
        // Comprobamos que no se intenta acceder a una página que no existe.
        if( $this->pagina() > $this->totalPaginas() )
        {
            $this->error("No exite la página ".$this->pagina()." de resutados. Hay solo un total de ".$this->totalPaginas());
            return false;
        }// Fin If
 
        // Ahora modificamos el Query del usuario, para poder agregarle
        // los límites para realizar la paginación
        $query .= " LIMIT ".($this->desde()-1).",".$this->porPagina();
        if(!$this->rs( @mysql_query($query, $this->conn()) ))
        {
            $this->error("Ocurrió un error al ejecutar el query \"$query\". La base dijo : ".mysql_error());
            return false;
        }// Fin If
        $this->registros( mysql_num_rows( $this->rs() ));
        return true;
    } // function
 
    /**
     * Retorna un Array asociativo con los datos del siguiente
     * registro dentro del Result Set.
     *
     * @since 26/02/2002 11:21:46 a.m.
     * @return 
     **/
    function obtenerArray()
    {
        return mysql_fetch_array( $this->rs() );
    } // function
 
    /**
     * Despliega el link hacia la siguiente página
     *
     * Siempre que quede una página siguiente, se muestra un link
     * hacia la siguiente página de resultados.
     * El método acepta ser llamado con un parámetro que contenga el
     * código HTML que representará al link y que pueda ser representado
     * encerrado dentro de un tag <A>.
     * @access public
     * @since 26/02/2002 01:49:29 p.m.
     **/
    function siguiente()
    {
        switch (func_num_args())
        {
            case 1:
                $this->_siguiente = func_get_arg(0);
            default:
                if($this->hasta() < $this->total())
                {
                    return "<td><a href=\"?pagina=".($this->pagina()+1).$this->propagar()."\">".$this->_siguiente."</a></td>";
                }// Fin If
            break;
        }
    } // function    
    
    /**
     * Despliega el link hacia la página anterior.
     *
     * Siempre que no estemos en la primer página, se muestra un link
     * hacia la página anterior de resultados.
     * El método acepta ser sllamado con un parámetro que contenga el
     * código HTML que representará al link y que pueda ser representado
     * encerrado dentro de un tag <A>.
     * @access public
     * @since 26/02/2002 01:49:29 p.m.
     **/
    function anterior()
    {
        switch (func_num_args())
        {
            case 1:
                $this->_anterior = func_get_arg(0);
            default:
                if($this->pagina() != 1)
                {
                    return "<td><a href=\"?pagina=".($this->pagina()-1).$this->propagar()."\">".$this->_anterior."</a></td>";
                }// Fin If
            break;
        }
    } // function
    
    /**
     * Despliega los números de páginas posibles
     *
     * Este método muestra una lista de todas las páginas posibles como
     * links, excepto la página actual, que se encuentra sin link y resaltada
     * en negrita.
     * @since 26/02/2002 02:15:36 p.m.
     * @return 
     **/
    function nroPaginas()
    {
        for($i = 1; $i <= $this->totalPaginas() ; $i++)
        {
            $temp[$i] = "<td bgcolor='#F3F3F3' style='border: 1px solid #808080'><a href=\"?pagina=$i".$this->propagar()."\">$i</a></td>";
        } // for
        $temp[$this->pagina()] = "<td bgcolor='#F3F3F3' style='border: 1px solid #808080'><b>".$this->pagina()."</b></td>";
        return implode("  ", $temp);
    } // function
    
    /**
     * Indica que variables se desean propagar en los links.
     *
     * Este metodo recibe una lista de nombres que son guarados internamente
     * hasta que son creados los links para navegar los resultados. En ese 
     * momento, son agregados los nombres de las variables con sus valores
     * para que puedan ser propagados.
     * @since 26/02/2002 02:15:36 p.m.
     * @return 
     **/
    function propagar()
    {
        switch(func_num_args()){
            case 0: 
                foreach($this->_variables as $var)
                    $ret.= "&$var=".$GLOBALS[$var];
                return $ret;
                break;
            default:
                for($i = 0; $i < func_num_args(); $i++)
                {
                    $this->_variables[] = func_get_arg($i);
                } // for
                break;
        } // switch
    } // function
 
 
} // end of class
?> 
   
  Gracias por la ayuda que puedan prestarme