estoy intentando crear una clase simple para el paginado de las consultas MySQL.
E estado estudiando un par de clases de este tipo pero no e copiado nada que conste.
(no es la primera clase que hago e)
Tengo esto por ahora
Código PHP:
<?php
class Paginado
{
/*variables para la conexion a la BD que deben ser editadas por el usuarios */
var $host="localhost"; //El host de MySQL
var $user="root"; //El user de MySQL
var $pass=""; //El pass de MySQL
var $db=""; //La Base de datos a utilizar
/*Variables definidas al instanciar la clase */
var $table; //La tabla de la BD a la cual se le haran las consultas
var $sql_condiciones; //Las condiciones tipo Where que se usaran en la consulta
var $sql_campo_orden; //El campo por el cual se ordenaran los resultados
var $url; //La url donde enlazar
var $total; //Total de registros
/* Datos de pagina*/
var $numero_por_pagina;
var $numero_de_paginas;
var $id_inicio=0;
/******** Metodos de la clase (no tocar) ****************/
function Paginado($tabla)
{
global $id_inicio;
$this->table=$tabla;
$this->Conexion();
if(isset($this->id_inicio))
{
$this->id_inicio=$id_inicio;
}
else
{
$this->id_inicio=0;
}
}
function Conexion()
{
if(!($conex=@mysql_connect($this->host,$this->user,$this->pass)))
{
echo "Error conectando";
}
return $conex;
}
function Set_condiciones($cond)
{
$this->sql_condiciones=$cond;
}
function Set_orderby($campo)
{
$this->sql_campo_orden=$campo;
}
function Pagina_actual()
{
$pagina_actual=($this->id_inicio/$this->numero_por_pagina)+1;
return ($pagina_actual);
}
function Total_paginas()
{
$sql="SELECT count(*) as total FROM $this->table";
if($this->sql_condiciones!="")
{
$sql.="$this->sql_condiciones";
}
$conex=$this->Conexion();
mysql_select_db($this->db,$conex);
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$this->total=$row[total];
}
function Get_numero_por_pagina()
{
$this->Total_paginas();
$this->numero_de_paginas=$this->total/$this->numero_por_pagina;
if(($this->total%$this->numero_por_paginas)>0)
$this->numero_de_paginas++;
$this->numero_de_paginas=floor($this->numero_de_paginas);
}
function Max_por_pagina($limite)
{
$this->numero_por_pagina=$limite;
$this->Get_numero_por_pagina;
}
function Consulta()
{
$conex=$this->Conexion();
mysql_select_db($this->db,$conex);
$sql="SELECT * FROM $this->table";
if($this->sql_condiciones!="")
{
$sql.="$this->sql_condiciones";
}
if($this->sql_campo_orden!="")
{
$sql.="ORDER BY $this->sql_campo_orden";
}
$sql.="LIMIT $this->id_inicio,$this->numero_por_pagina";
$result=mysql_query($sql);
$return ($result);
}
function Mostrar_numero_pagina()
{
$pagina_actual=$this->Pagina_actual();
echo "Pagina ",$pagina_actual," de ",$this->numero_de_paginas;
}
}/*Fin de la clase*/
?>
Ademas necesito saber como documentar correctamente la clase.
A ver que tal va, es solo para aprender y si funciona usarla yo mismo.
Si tiene algun error no me vendria mal saber cual es que hasta ahora no he hecho pruebas por que con lo que llevo nada funciona.
Saludos
