¿Cómo hacer reportes gráficos en una aplicación web?

Respuesta de
a
Usuario
Hola a amigo, mi pregunta es la siguiente, deseo hacer reportes gráficos estadísticos desde una base de datos mysql para un sistema de información bajo tecnología web, he revisado algunos script en internet y me aparecen que manejan los datos de manera estática en el mismo código y deseo realizarlos de forma dinámica, es decir, que se conecte a la base de datos y me refleje los resultados en una gráfica, agradezco si me podría ayudar a resolver mi problema
Avatar
Experto
A lo mejor con esto te puedes orientar:
http://www.desarrolloweb.com/articulos/1987.php
Saludos
Usuario
Buenas noches amigo disculpe la molestia lo que sucede es que en este ejemplo aparecen los datos que se reflejan en la gráfica dentro del código php y lo que en realidad necesito es que se conecte a una base de datos y esos sean los resultados que me refleje la gráfica es decir que yo pueda enviar data a la base de datos desde un formulario y que luego sea esa información la que muestre en el reporte estadístico
Avatar
Experto
Claro, el tema es que debes de sacar tu mismo los datos de la BD para completar ese sctipr, te dejo un ejemplo:
http://www.webestilo.com/php/php07b.phtml
Saludos
Usuario
Buenos días amigo el código que estoy manejando es el siguiente:
<?php
include("inc/jpgraph.php");
include("inc/jpgraph_bar.php");
$conectID = mysql_connect("localhost","root","")
or die("NO SE PUEDE CONECTAR A LA BASE DE DATOS");
mysql_select_db("grafico");
    
     $data = array(); // creamos un arreglo en blanco, este será el de los datos
$line = mysql_fetch_row($result);
while ($line = mysql_fetch_row($result)) {
$data[] = $line[0]; // agregamos el dato, suponiendo que este en la primera posición del arreglo resultanteç
}
    
$ydata = $data;
$graph = new Graph(350, 250, "auto");    
$graph->SetScale("textlin");
$graph->img->SetMargin(40, 20, 20, 40);
$graph->title->Set("Demo");
$graph->xaxis->title->Set("Altura" );
$graph->yaxis->title->Set("Total" );
$barplot =new BarPlot($ydata);
$barplot->SetColor("blue");
$graph->Add($barplot);
$graph->Stroke();
?>
Resulta que en la gráfica solo muestra dos datos de la bd, me da la impresión de que realiza una suma de todos los datos existentes o algo así, no se que posibilidad existe en que me ayude para que la gráfica pueda mostrar el resultado de "n" datos.
Saludos...
Avatar
Experto
Para que pueda mostrar "n" datos, deberás de insertar los resultados de tu consulta, dentro de la definición de tu gráfico. No veo la consulta, así que no te puedo decir, perodebes darle los datos que quieres obtener de forma ordenada
Saludos
Usuario
Saludos amigo ya resolví el problema el código que utilice finalmente fue el siguiente:
<?php
include("inc/jpgraph.php");
include("inc/jpgraph_bar.php");
$conectID = mysql_connect("localhost","root","")
or die("NO SE PUEDE CONECTAR A LA BASE DE DATOS");
mysql_select_db("grafico");
$result = mysql_query("SELECT * FROM trabajo ",$conectID);
$data = array(); // creamos un arreglo en blanco, este será el de los datos
while ($line = mysql_fetch_row($result)) {
$data[] = $line[2]; // agregamos el dato, suponiendo que este en la primera posición del arreglo resultanteç
}
    
$ydata = $data;
$graph = new Graph(750, 650, "auto");    
$graph->SetScale("textlin");
$graph->img->SetMargin(40, 40, 20, 40);
$graph->title->Set("Demo");
$result2 = mysql_query("SELECT * FROM trabajo ",$conectID);
$data2 = array(); // creamos un arreglo en blanco, este será el de los datos
while ($line2 = mysql_fetch_row($result2)) {
$data2[] = $line2[1]; // agregamos el dato, suponiendo que este en la primera posición del arreglo resultanteç
}
$graph->xaxis->SetTickLabels($data2);
//$graph->xaxis->title->Set("Altura" );
$graph->yaxis->title->Set("Total Horas Trabajadas" );
$barplot =new BarPlot($ydata);
$barplot->SetColor("blue");
//$barplot1 = new BarPlot($datos1);
//$barplot->SetColor("red");
// Un gradiente Horizontal de rojo a azul
$barplot->SetFillGradient("green", "yellow", GRAD_HOR);
// 25 pixeles de ancho para cada barra
$barplot->SetWidth(25);
//$grafico->Add($barplot);
//$grafico->Stroke();
$graph->Add($barplot);
$graph->Stroke();
?>
Muchas gracias por tu aporte sera hasta la próxima