Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: RedZer en 9 Febrero 2011, 05:57 am



Título: crear graficas con JPGRAPH
Publicado por: RedZer en 9 Febrero 2011, 05:57 am
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
Código
  1.  
  2. <?php
  3. include("jpgraph/inc/jpgraph.php");
  4. include("jpgraph/inc/jpgraph_bar.php");
  5. include("conexion.php");
  6.  
  7. conectar();
  8. $result=mysql_query("select * FROM actividades ");
  9. desconectar();
  10. if (mysql_num_rows($result)>0)
  11. {
  12.  
  13. while ($row=mysql_fetch_array($result))
  14. {
  15.  
  16.  
  17.  conectar();
  18. $queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion  where id_actividad='$row[0]'");
  19. $rowEmp1 = mysql_fetch_assoc($queEmp1);
  20. $num=$rowEmp1['num'];
  21.  
  22. desconectar();
  23.  
  24.  
  25.  
  26. //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.
  27. $ydata=array($num);
  28.  
  29.  
  30.  
  31.  
  32.    }
  33.  
  34.     }
  35.  
  36.  
  37.  
  38. $graph = new Graph(750, 350, "auto");    
  39. $graph->SetScale("textlin");
  40.  
  41. $graph->img->SetMargin(40, 20, 20, 40);
  42. $graph->title->Set("GRAFICA DE ACTIVIDADES  ");
  43. $graph->xaxis->title->Set("Altura" );
  44. $graph->yaxis->title->Set("Total" );
  45.  
  46.  
  47. $barplot =new BarPlot($ydata);
  48. $barplot->SetColor("orange");
  49.  
  50. $graph->Add($barplot);
  51. $graph->Stroke();
  52. ?>
  53.  
  54.  


Título: Re: crear graficas con JPGRAPH
Publicado por: Castg! en 9 Febrero 2011, 06:53 am
Código
  1. <?php
  2. include("jpgraph/inc/jpgraph.php");
  3. include("jpgraph/inc/jpgraph_bar.php");
  4. include("conexion.php");
  5.  
  6. conectar();
  7. $result=mysql_query("select * FROM actividades ");
  8.  
  9. $ydata=array();
  10.  
  11. if (mysql_num_rows($result)>0) {
  12. while ($row=mysql_fetch_array($result)) {
  13. $queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion where id_actividad='".$row[0]."'");
  14. $rowEmp1 = mysql_fetch_assoc($queEmp1);
  15. $num=$rowEmp1['num'];
  16.  
  17. //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.
  18. $ydata[]=$num;
  19. }
  20. }
  21.  
  22. desconectar();
  23.  
  24. $graph = new Graph(750, 350, "auto");    
  25. $graph->SetScale("textlin");
  26.  
  27. $graph->img->SetMargin(40, 20, 20, 40);
  28. $graph->title->Set("GRAFICA DE ACTIVIDADES  ");
  29. $graph->xaxis->title->Set("Altura" );
  30. $graph->yaxis->title->Set("Total" );
  31.  
  32. $barplot =new BarPlot($ydata);
  33. $barplot->SetColor("orange");
  34.  
  35. $graph->Add($barplot);
  36. $graph->Stroke();
  37.  
  38. ?>
  39.  

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!


Título: Re: crear graficas con JPGRAPH
Publicado por: RedZer en 9 Febrero 2011, 07:13 am
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
Código
  1. id_actividad
  2. nombre_actividad
  3. hora
  4. fecha d inicio
  5. fecha de terminacion
  6. lugar
  7. actividad      
  8.  

TABLA ASIGNACION

Código
  1. id_asignacion
  2. id_actividad
  3. nombre
  4. apellidos
  5. departamento
  6. rpe
  7. sexo
  8. contrato
  9.  

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

Código
  1. <?php
  2. include("jpgraph/inc/jpgraph.php");
  3. include("jpgraph/inc/jpgraph_bar.php");
  4. include("conexion.php");
  5.  
  6. conectar();
  7. $result=mysql_query("select * FROM actividades ");
  8. desconectar();
  9. if (mysql_num_rows($result)>0)
  10. {
  11.  
  12. while ($row=mysql_fetch_array($result))
  13. {
  14.  
  15.  
  16.  conectar();
  17. $queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion  where id_actividad='$row[0]'");
  18. $rowEmp1 = mysql_fetch_assoc($queEmp1);
  19. $num=$rowEmp1['num'];
  20.  
  21. desconectar();
  22.  
  23.  
  24. //crea una serie para un grafico de barras
  25. $graph = new Graph(750, 350, "auto");  
  26. $graph->SetScale("textlin");
  27. $graph->title->Set("GRAFICA DE ACTIVIDADES  ");
  28. $graph->img->SetMargin(40, 20, 20, 40);
  29. //Asigna las etiquetas para los valores del eje x
  30. $graph->xaxis->SetTickLabels(array($row[1]));
  31. $ydata[]=$num;
  32. $graph->yaxis->title->Set("Total" );
  33.  
  34.    }
  35.  
  36.     }
  37.  
  38.  
  39.  
  40.  
  41. $barplot =new BarPlot($ydata);
  42. $barplot->SetColor("orange");
  43.  
  44. $graph->Add($barplot);
  45. $graph->Stroke();
  46.  
  47.  
  48.  
  49. ?>
  50.  


Título: Re: crear graficas con JPGRAPH
Publicado por: RedZer en 9 Febrero 2011, 07:37 am
ya quedo dejo el codigo completo muchisimas gracias castg
Código
  1.  
  2. <?php
  3. include("jpgraph/inc/jpgraph.php");
  4. include("jpgraph/inc/jpgraph_bar.php");
  5. include("conexion.php");
  6.  
  7. conectar();
  8. $result=mysql_query("select * FROM actividades ");
  9. desconectar();
  10. if (mysql_num_rows($result)>0)
  11. {
  12.  
  13. while ($row=mysql_fetch_array($result))
  14. {
  15.  
  16.  
  17.  conectar();
  18. $queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion  where id_actividad='$row[0]'");
  19. $rowEmp1 = mysql_fetch_assoc($queEmp1);
  20. $num=$rowEmp1['num'];
  21.  
  22. desconectar();
  23.  
  24. $vector[]=$row[6];
  25. //crea una serie para un grafico de barras
  26. $graph = new Graph(750, 350, "auto");  
  27. $graph->SetScale("textlin");
  28. $graph->title->Set("GRAFICA DE ACTIVIDADES  ");
  29. $graph->img->SetMargin(40, 20, 20, 40);
  30. //Asigna las etiquetas para los valores del eje x
  31. //$graph->xaxis->SetTickLabels(array($row[6]));
  32. $graph->xaxis->SetTickLabels($vector);
  33.  
  34.  
  35. $ydata[]=$num;
  36. $graph->yaxis->title->Set("Total" );
  37.  
  38.    }
  39.  
  40.     }
  41.  
  42.  
  43.  
  44.  
  45. $barplot =new BarPlot($ydata);
  46. $barplot->SetColor("orange");
  47.  
  48. $graph->Add($barplot);
  49. //para ponerlo en negritas los titulos
  50. $graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
  51. $graph->Stroke();
  52.  
  53.  
  54.  
  55. ?>
  56.  
  57.  
  58.  
  59.  


Título: Re: crear graficas con JPGRAPH
Publicado por: Castg! en 9 Febrero 2011, 19:59 pm
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


Título: Re: crear graficas con JPGRAPH
Publicado por: RedZer en 9 Febrero 2011, 20:16 pm
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

Código
  1. <?php
  2. include("jpgraph/inc/jpgraph.php");
  3. include("jpgraph/inc/jpgraph_bar.php");
  4. include("conexion.php");
  5.  
  6.  
  7.  
  8.  
  9.  
  10. conectar();
  11. $result=mysql_query("select * FROM actividades ");
  12. desconectar();
  13. if (mysql_num_rows($result)>0)
  14. {
  15.  
  16. while ($row=mysql_fetch_array($result))
  17. {
  18.  
  19.  
  20.  conectar();
  21. $queEmp1 = mysql_query("SELECT COUNT(id_actividad)as num,id_actividad FROM asignacion  where id_actividad='$row[0]'");
  22. $rowEmp1 = mysql_fetch_assoc($queEmp1);
  23. $num=$rowEmp1['num'];
  24.  
  25. desconectar();
  26.  
  27. $vector[]=$row[6];
  28. //crea una serie para un grafico de barras
  29. $graph = new Graph(1000, 350, "auto");  
  30. $graph->SetScale("textlin");
  31. $graph->title->Set("GRAFICA DE ACTIVIDADES  ");
  32. $graph->img->SetMargin(40, 20, 20, 40);
  33. //Asigna las etiquetas para los valores del eje x
  34.  
  35. $graph->xaxis->SetTickLabels($vector);
  36. //$graph->xaxis->SetLabelAngle(90); //damos el angulo a la etiqueta de 0 a 90
  37.  
  38. $ydata[]=$num;
  39. $graph->yaxis->title->Set("Total" );
  40.  
  41.    }
  42.  
  43.     }
  44.  
  45.  
  46.  
  47.  
  48.  
  49. $barplot =new BarPlot($ydata);
  50. $barplot->SetColor("red");
  51. //$barplot->SetFillColor('green');
  52. $graph->Add($barplot);
  53. $graph->Stroke();
  54.  
  55.  
  56.  
  57. ?>
  58. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  59. <html xmlns="http://www.w3.org/1999/xhtml">
  60. <head>
  61. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  62. <title>Documento sin t&iacute;tulo</title>
  63. </head>
  64.  
  65. <body>
  66. <img src="imagenes/printer.png" width="16" height="16" onClick="window.print();" />
  67.  
  68.  
  69. </body>
  70. </html>
  71.  
  72.  
  73.