Hace algunos dias me vi en la necesidad de usar una libreria para generar reportes estadisticos, anteriormente habia usado una libreria JpGraph, pero que por motivos de algunos problemas con el renderizado de la imagen y su baja calidad, busque una nueva libreria, la cual se llama pChart, realmente es muy accesible, facil de manipular y crea graficos muy profesionales, los cuales son adaptables a a necesidad.
Primeramente es necesario descargar la libreria desde su web (pChart), donde existen ejemplos utilizando datos estaticos, aqui veremos como implementar una reporte grafico usando base de datos.
Crearemos la base de datos llamada arqonexus. con la tabla personm. la cual contendra los datos de personas y sus respectivas edades.
1.
CREATE
TABLE
`personm` (
2.
`cpersona`
int
(10)
NOT
NULL
,
3.
`nombre`
varchar
(20)
NOT
NULL
,
4.
`apellido`
varchar
(50)
NOT
NULL
,
5.
`edad`
int
(3)
NOT
NULL
,
6.
PRIMARY
KEY
(`cpersona`)
7.
) ENGINE=MyISAM
DEFAULT
CHARSET=utf8;
Ahora rellenaremos de datos.:
1.
insert
into
`personm`(`cpersona`,`nombre`,`apellido`,`edad`)
2.
values
(1,
'Moshe'
,
'Cotacallapa'
,18),(2,
'Jose'
,
'Ramirez'
,24),(3,
'Mateo'
,
'Hurtado'
,17),(4,
'Carlos'
,
'Gonzales'
,19),(5,
'Judas'
,
'Iscariote'
,24),(6,
'Pedro'
,
'La Roca'
,21),(7,
'Ananias'
,
'Gutenm'
,24),(8,
'Maria'
,
'Carmona'
,18),(9,
'Julio'
,
'Farre'
,19),(10,
'Charles'
,
'Chaplin'
,19),(11,
'Noe'
,
'Prado'
,17),(12,
'Viviana'
,
'Roman'
,17),(13,
'Tadeo'
,
'Torres'
,19);
Ahora que ya tenemos nuestra base de datos llenada, procederemos a implementar nuestro sitio.
Descompimir el archivo en una carpeta llamada, grafico, y crearemos un nuevo archivo php llamado conexion.php.
En el archivo a descargar existen 2 archivos php, uno de ellos se llama mypie.php y el otro vermypie.php, de los cuales el primero se encarga de crear la imagen a mostrar, el segundo hace un llamado al primero y tambien llama a la imagen renderizada.
Si desemos cambiar los datos lo podemos realizar en esta parte de mypie.php
01.
include
"conexion.php"
;
//llamamos a la conexion, donde uds puede modificar la base de datos ,user y pass.
02.
$cn
=LibMySQL::getInstancia();
03.
04.
include
(
"pChart/pData.class"
);
05.
include
(
"pChart/pChart.class"
);
06.
07.
$rs
=
$cn
->consultar(
"select count(edad) as cedad,edad from personm group by edad asc;"
);
//la consulta a la base de datos pidiendo la cantidad de edades de una determinada edad
08.
$edad
=
array
();
//creamos el array
09.
$cedad
=
array
();
10.
foreach
(
$rs
as
$datos
){
11.
$edad
[]=
$datos
[
'edad'
].
" de edad"
;
//asignamos a los arrays creados
12.
$cedad
[]=
$datos
[
'cedad'
];
13.
}
14.
15.
$DataSet
=
new
pData;
16.
17.
$DataSet
->AddPoint(
$edad
,
"Edad"
);
//el texto
18.
$DataSet
->AddPoint(
$cedad
,
"Porcentajes"
);
//Extrayendo Porcentajes(la libreria se encarga de extraerlos , tan solo es necesario colocar cantidades.)
19.
$DataSet
->AddAllSeries();
20.
$DataSet
->SetAbsciseLabelSerie(
"Edad"
);
//no olvidar que aqui van los textos(nombres de los campos)
21.
....
// el codigo continua, pero no es necesario modificarla.
22.
.....
//
23.
$Test
->Render(
"ReporteEdad.png"
);
//en la ultima parte se ve el nombre de la imagen que deseamos que se cree.
ahora veremos vermypie.php
En este caso el boton se llama ver
1.
if
(isset(
$_POST
[
'ver'
])){
2.
include
(
"mypie.php"
);
//no olvidarse llamar a nuestra archivo de renderizado
3.
echo
""
;
//llamar al nombre de la imagen que hemos colocado en el mypie.php
4.
}
Ahora nos quedara de la siguiente forma:
Todo el archivo para descargar y ver la prueba se encuentra aqui:
espero que les sirva.