Bueno el problema es el siguiente estoy intetentando crear graficas utilizando esta libreria de echo si me crea la grafica el problema surge cuando quiero mostrar los resultados
ejemplo tengo una tabla llamada actividades y otra llamada asignacion en tonces a cada trabajador se le asignara una actividad y yo lo que quiero es mostrar cuantos trabjadores participaron en la actividad del dia de las madres o bien en el dia de san valentin por decirlo asi , la grafica que estoy intentando hacer es la grafica de barras de echo si me los muestra pero no con los resultados deceados :-\ lo que me hace el codigo que planteare es mostrarme solo una barra cuando me deberia de mostrar 3 barras por que son 3 actividades en las que estan participando los empleados mi codigo es el siguiente
<?php
include("jpgraph/inc/jpgraph.php");
include("jpgraph/inc/jpgraph_bar.php");
include("conexion.php");
conectar();
$result=mysql_query("select * FROM actividades ");
desconectar();
if (mysql_num_rows($result)>0)
{
while ($row=mysql_fetch_array($result))
{
conectar();
$queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='$row[0]'");
$rowEmp1 = mysql_fetch_assoc($queEmp1);
$num=$rowEmp1['num'];
desconectar();
//AQUI ES DONDE TENGO EL PROBLEMA CREO YA QUE NADA MAS ME MUESTRA UNA BARRA CUANDO ME deberia DE MOSTRAR 3 YA QUE LA VARIABLE NUM ME ESTA DEVOLVIENDO 3 VALORES OSEA 1,1,1.
$ydata=array($num);
}
}
$graph = new Graph(750, 350, "auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(40, 20, 20, 40);
$graph->title->Set("GRAFICA DE ACTIVIDADES ");
$graph->xaxis->title->Set("Altura" );
$graph->yaxis->title->Set("Total" );
$barplot =new BarPlot($ydata);
$barplot->SetColor("orange");
$graph->Add($barplot);
$graph->Stroke();
?>
<?php
include("jpgraph/inc/jpgraph.php");
include("jpgraph/inc/jpgraph_bar.php");
include("conexion.php");
conectar();
$result=mysql_query("select * FROM actividades ");
$ydata=array();
if (mysql_num_rows($result)>0) {
while ($row=mysql_fetch_array($result)) {
$queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='".$row[0]."'");
$rowEmp1 = mysql_fetch_assoc($queEmp1);
$num=$rowEmp1['num'];
//AQUI ES DONDE TENGO EL PROBLEMA CREO YA QUE NADA MAS ME MUESTRA UNA BARRA CUANDO ME deberia DE MOSTRAR 3 YA QUE LA VARIABLE NUM ME ESTA DEVOLVIENDO 3 VALORES OSEA 1,1,1.
$ydata[]=$num;
}
}
desconectar();
$graph = new Graph(750, 350, "auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(40, 20, 20, 40);
$graph->title->Set("GRAFICA DE ACTIVIDADES ");
$graph->xaxis->title->Set("Altura" );
$graph->yaxis->title->Set("Total" );
$barplot =new BarPlot($ydata);
$barplot->SetColor("orange");
$graph->Add($barplot);
$graph->Stroke();
?>
Podrias explicar un poco mejor como están compuestas las tablas? Practicamente que valor o columna está devolviendo $row[0]?
Fijate en el codigo que puse, te saque algunos "conectar()" y "desconectar()" que veia inecesarios, pero, que función realizan dichas?
Además lo que hice fue declarar la variable $ydata como array y en el while se le agrega un nuevo indice con el valor $num. Lo estoy haciendo a ciegas asi que nose si es esto lo que queres. Explicate un poco más.
Saludo!
muchas gracias Castg! me sacaste de un lio practicamente era esta parte lo que me estaba fallando $ydata[]=$num; y mira $row[0] vendria siendo el id de mi tabla actividades por que cuando yo asigno una actividad lo guardo en la tabla asignacion junto con datos personales del trabjador pero en la tabla asignacion solo guardo el id de la actividad mis tablas tienen la siguiente estructura
TABLA ACTIVIDADES
id_actividad
nombre_actividad
hora
fecha d inicio
fecha de terminacion
lugar
actividad
TABLA ASIGNACION
id_asignacion
id_actividad
nombre
apellidos
departamento
rpe
sexo
contrato
bueno mira tengo otra duda como puedo imprimir titulos de bajo de las barras lo estoy intentando con este codigo $graph->xaxis->SetTickLabels(array($row[1])); pero nada mas me imprime un solo titulo mi codigo completo quedo asi
<?php
include("jpgraph/inc/jpgraph.php");
include("jpgraph/inc/jpgraph_bar.php");
include("conexion.php");
conectar();
$result=mysql_query("select * FROM actividades ");
desconectar();
if (mysql_num_rows($result)>0)
{
while ($row=mysql_fetch_array($result))
{
conectar();
$queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='$row[0]'");
$rowEmp1 = mysql_fetch_assoc($queEmp1);
$num=$rowEmp1['num'];
desconectar();
//crea una serie para un grafico de barras
$graph = new Graph(750, 350, "auto");
$graph->SetScale("textlin");
$graph->title->Set("GRAFICA DE ACTIVIDADES ");
$graph->img->SetMargin(40, 20, 20, 40);
//Asigna las etiquetas para los valores del eje x
$graph->xaxis->SetTickLabels(array($row[1]));
$ydata[]=$num;
$graph->yaxis->title->Set("Total" );
}
}
$barplot =new BarPlot($ydata);
$barplot->SetColor("orange");
$graph->Add($barplot);
$graph->Stroke();
?>
ya quedo dejo el codigo completo muchisimas gracias castg
<?php
include("jpgraph/inc/jpgraph.php");
include("jpgraph/inc/jpgraph_bar.php");
include("conexion.php");
conectar();
$result=mysql_query("select * FROM actividades ");
desconectar();
if (mysql_num_rows($result)>0)
{
while ($row=mysql_fetch_array($result))
{
conectar();
$queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='$row[0]'");
$rowEmp1 = mysql_fetch_assoc($queEmp1);
$num=$rowEmp1['num'];
desconectar();
$vector[]=$row[6];
//crea una serie para un grafico de barras
$graph = new Graph(750, 350, "auto");
$graph->SetScale("textlin");
$graph->title->Set("GRAFICA DE ACTIVIDADES ");
$graph->img->SetMargin(40, 20, 20, 40);
//Asigna las etiquetas para los valores del eje x
//$graph->xaxis->SetTickLabels(array($row[6]));
$graph->xaxis->SetTickLabels($vector);
$ydata[]=$num;
$graph->yaxis->title->Set("Total" );
}
}
$barplot =new BarPlot($ydata);
$barplot->SetColor("orange");
$graph->Add($barplot);
//para ponerlo en negritas los titulos
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->Stroke();
?>
Ya con esa clase no te puedo ayudar yo :P
Unplacer ayudarte, nunca dudes en comentar tus problemas que seguramente te vamos a poder ayudar
bueno hay un detalle minimo que llevo la mitad del dia buscando como hacerle pero no hay info de eyo no se aque se deba quiero poner un icono de una impresora obiamente para que el usuario pueda imprimir la grafica la cuestion es que no me lo acepta mas bien no me aroja la imagen pense que era por que la imagen de la impresora lo tapaba la imagen de la grafica entonces decidi hacer unos saltos de linea y ni asi saben por que? el codigo completo es el siguiente
<?php
include("jpgraph/inc/jpgraph.php");
include("jpgraph/inc/jpgraph_bar.php");
include("conexion.php");
conectar();
$result=mysql_query("select * FROM actividades ");
desconectar();
if (mysql_num_rows($result)>0)
{
while ($row=mysql_fetch_array($result))
{
conectar();
$queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='$row[0]'");
$rowEmp1 = mysql_fetch_assoc($queEmp1);
$num=$rowEmp1['num'];
desconectar();
$vector[]=$row[6];
//crea una serie para un grafico de barras
$graph = new Graph(1000, 350, "auto");
$graph->SetScale("textlin");
$graph->title->Set("GRAFICA DE ACTIVIDADES ");
$graph->img->SetMargin(40, 20, 20, 40);
//Asigna las etiquetas para los valores del eje x
$graph->xaxis->SetTickLabels($vector);
//$graph->xaxis->SetLabelAngle(90); //damos el angulo a la etiqueta de 0 a 90
$ydata[]=$num;
$graph->yaxis->title->Set("Total" );
}
}
$barplot =new BarPlot($ydata);
$barplot->SetColor("red");
//$barplot->SetFillColor('green');
$graph->Add($barplot);
$graph->Stroke();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<img src="imagenes/printer.png" width="16" height="16" onClick="window.print();" />
</body>
</html>