Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/07/2009, 23:34
Avatar de acoevil
acoevil
 
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Clase - Data Grid

VER ULTIMA VERSION DISPONIBLE


manual


Hola como estan foreros, desde hace tiempo he desarrollado diversas paginas en las cuales siempre me TOCA (y no esta mal) usar bases de datos para mostrar informacion a nuestros usuarios de una forma adecuada, pero resulta que muchas veces es mucha la informacion que toca mostrar, y siempre es maluco estar digitando practicamente el mismo codigo para poder hacerlo.

Algo como esto

Código PHP:
$usuarios mysql_query"select * from usuarios" ); 
Y esto

Código PHP:
 while( $row mysql_fetch_assoc$usuarios  )  )

{
/*...*/
Ahora solo imaginen cuando tienen que hacer muchos mas de estos para poder mostrar la informacion que necesitan, por lo menos para mi se vuelve algo maluco y muy repetitivo, por eso existe algo que se lllaman Data Grids

¿ Que es un data grid ?

Un data grid, que viene a significar en castellano rejilla de datos, es una interfaz de usuario bastante típica, que sirve para visualizar información en una tabla. La información suele ser un conjunto de registros, y se suelen mostrar cada uno de ellos en una fila. Además, los data grid suelen tener integradas funcionalidades para la ordenación de los datos y opciones para su edición o borrado entre muchas mas.

Logicamente, yo se que existen numerosas clases que hacen esto pero yo hize con mis propias funcionalidades,


Bueno entremos a lo que nos interesa

Tenemos la sgte bases de datos que tiene la sgte tabla y necesitamos mostrarla al usuario.


http://www.cuelgalo.com/viewer.php?id=1247114395_1.JPG

Ahora lo que tenemos que hacer es mostrar la informacion utlizando la clase

Primero que todo creamos una conexion hacia la base de datos
Código PHP:
$conexion mysql_connect("localhost""root","");
mysql_select_db("ejemplo"$conexion); 
Segundo incluimos la clase al archivo actual ya se a con include o require

Tercero, tenemos que crear una instancia de la clase

Código PHP:
$grid Aco_DataGrid::instancia(); 
Cuarto, creamos una variable que que va a contener la consulta a la base de datos, yo la tengo asi.

Código PHP:
$sql "select codigo,nombre,pcompra,pventa,cantidad from productos"
NOTA: Cuando indiquen la consulta y utilizan un alias as es el que deberan utilizar mas adelante...

Quinto, creamos un array asociativo donde se indica el titulo de la columna y el campo de la base de datos.


Código PHP:
$campos = array( 
'codigo' => 'codigo',
 
'nombre' => 'nombre',
 
'Precio de compra' => 'pcompra',
 
'Precio de venta' => 'pventa',
 
'Cantidad' => 'cantidad'  ); 

Y sexto, llamamos al metodo confCampos que recibe 3 parametros

Código PHP:
// $sql -> la consulta a la base de datos
// $conexion -> Indica la conexion con la base de datos
// $campos -> Indica los campos que se utilizaran para mostrar en el grid
$grid->confCampos($sql$conexion$campos); 

LISTO!! ahora tenemos nuestra informacion ordenada en un data Grid, como se muestra en el sgte enlace

http://www.cuelgalo.com/viewer.php?id=1247115369_2.JPG

Pero resulta que mostrar la informacion sin algun tipo de color seria muy feo, por eso he creado metodos que permiten mejorar mucho la apariencia...

El metodo grid_BgColorFC recibe como primer parametro un String que indica el color del que tendran los titulos en las columnas, y como segundo parametro un array de colores que indican el color que tendra cada fila, la cantidad de colores puede ser cualquiera...
Código PHP:

$colores 
= array ( '#F0F9FC''#FFFFFF' );
 
$grid->grid_BgColorFC'#FFFFFF'$colores ); 

Ahora tenemos algo asi

http://www.cuelgalo.com/viewer.php?id=1247116045_3.JPG

Resulta que el contenid de las tablas esta muy pegado entre si, entonces tenemos un metodo para solucionarlo.

Código PHP:
$grid->grid_PacingAndPadding(33); 
Como vemos es el famoso cellspacing y cellpadding

Ahora tenemos algo un poco mas ordenado

http://www.cuelgalo.com/viewer.php?id=1247116241_4.JPG


Ahora por ejemplo necesitamos crear una nueva columna para poder editar
informacion de esa base de datos...

Muy simple

La clase tiene metodos que te permiten agregar una columna, quitar una columna, indicarle la ubicacion de la columna y el contenido que deberia llevar



Todos estos y muchos mas metodos se encuentran disponibles en la clase, la cual sera actualizada constantemente para agregar nuevas funcionalidades y de la misma manera optimizar mas y mas el codigo, si tienes alguna idea como una funcionalidad extra q deberia tener me pueden decir y juntos mejoraremos el codigo...


Aqui muestro como se veria el grid con un poco mas de trabajo


http://www.cuelgalo.com/viewer.php?id=1247117421_5.JPG

Última edición por acoevil; 16/11/2009 a las 14:16