Sobre la teoria:
por que crees que me e demorado tanto en empezar.
POr que e leido y estudiado todo de forma teorica, entonces de teoria ya se harto (segun yo), enntonces me propuse empezar con codigo y ya e creado algunas cosillas, entonces es esta clase mi reto (por ahora).
Hice una modificaciones y ya funciona una parte, me falta solo lo de obtener la url para poder crear los enlaces de siguiente o atras, pero lo que tengo ya funciona
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="mysql"; //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;
var $variables;
/******** Metodos de la clase (no tocar) ****************/
function Paginado($table)
{
global $id_inicio;
$this->table=$table;
$this->Conexion();
if(isset($this->id_inicio))
{
$this->id_inicio=$this->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_object($result);
$this->total=$row->total;
}
function Get_por_pagina()
{
$this->Total_paginas();
$this->numero_de_paginas=@round($this->total/$this->numero_por_pagina);
if(($this->total%$this->numero_por_pagina)>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_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*/
$page= new Paginado("user");
$page->Max_por_pagina("3");
echo "<br><br>";
$page->Mostrar_numero_pagina();
$result=$page->Consulta();
echo "<p> </p>";
while($row=mysql_fetch_object($result))
{
echo $row->Host,"-",$row->User,"-",$row->Password,"<br>";
}
mysql_free_result($result);
?>
Prueba eso y veras que funciona.
Saludos
PD: aproposito no encuentro lo de como documentar las clases en la page que me diste no se sere ciego o simplemente no entiendo ingles.