Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2003, 19:47
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
Ayuda con una funcion dentro de una Class

Hola
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*/
?>
Ahora me esta faltando la funcion para obtener la URL Donde enlazar, pero no se como hacerla, para luego con esta funcion crear las enlaces siguiente o atras segun corresponda.

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
__________________
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 19:50