Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/02/2003, 20:10
Avatar de MSDark
MSDark
 
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 21 años, 5 meses
Puntos: 1
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>&nbsp</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.
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 18/02/2003 a las 22:08