Luego de ver el gran numero de visitas y comentarios que ha tenido el post sobre PHP/SWF Charts y tal como lo prometi, comento a continuación otra libreria para PHP que nos sirve para generar un gran numero de graficas estadisticas y que además es completamente libre.
Se trata del proyecto Open Flash Chart, creado inicialmente por John Glazebrook y posteriormente mejorado y ampliado por varios colaboradores a otros lenguajes como Python, Perl, Java y .NET.

De forma similar a la libreria PHP/SWF Charts, Open Flash Chart consta basicamente de dos scripts en PHP (aunque como lo dije anteriormente la libreria ya está disponible para otros lenguajes), el archivo que contiene los datos que se van a graficar (el cual podria ser completamente dinamico, haciendo consultas a bases de datos) y el archivo que contiene la instruccion de inserción del grafico que consta de dos lineas, la de inclusion de la libreria y la linea del llamado a la funcion que dibuja nuestra grafica.
Un pequeño ejemplo
A continuación voy a reproducir un ejemplo sencillo que se encuentra disponible en la web del proyecto, a fin de comprender un poco mejor el funcionamiento de la libreria y notar la similitud con la libreria PHP/SWF Charts que comentaba en un post anterior.
- Instalar los archivos: Lo primero que debemos hacer es descargar la ultima version estable de la libreria. El archivo descargado es un comprimido en ZIP que debemos extraer. Copiamos en nuestro servidor el archivo open-flash-chart.swf y la carpeta ofc-library (en este ejemplo se supone que se alojan en la raiz del servidor).
- Insertar el grafico: Luego de copiar la libreria en nuestro servidor (local o remoto) creamos el archivo PHP en el cual se mostrará la grafica, para tal fin solo es necesario incluir la libreria y hacer el llamado a la funcion de inserción del grafico, de la siguiente manera:
<?php
include_once 'ofc-library/open_flash_chart_object.php';
open_flash_chart_object(500,250,'http://'. $_SERVER['SERVER_NAME'].'/chart-data.php',false);
?>En la primera instrucción se incluye la libreria, especificamente el archivo que contiene la funcion de insercion del grafico.
En la segunda instrucción se hace el llamado a la funcion de inclusión del grafico, cuyos parametros son el ancho y alto del grafico en pixeles, la ruta al archivo de datos y un cuarto parametro que se usa para corregir un pequeño incoveniente con Internet Explorer y generalmente tiene el valor false.
- Archivo de datos: En el archivo de datos, se definen los valores que se van a graficar, asi como todas las propiedades de la grafica, entre ellas el tipo, titulos, valor de los ejes, colores, leyendas, etc. En este archivo archivo tambien se pueden incluir consultas a bases de datos como mySQL para obtener los valores que se querian mostrar. A continuacion un archivo ejemplo de datos:
<?php
// Generar datos randomicos:
srand((double)microtime()*1000000);
$max = 50;
$data = array();
for( $i=0; $i<12; $i++ ){
$data[] = rand(0,$max);
}
// incluir la libreria:
include_once( 'ofc-library/open-flash-chart.php' );
$g = new graph(); //creacion del objeto
// Titulo de la grafica
$g->title( 'Spoon sales '. date("Y"), '{font-size: 26px;}' );
$g->set_data( $data );
// valores del eje X
$g->set_x_labels( array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' ) );
// maximo valor del eje Y
$g->set_y_max( 60 );
// pasos del eje y
$g->y_label_steps( 6 );
// mostrar los datos
echo $g->render();
?>El ejemplo anterior y luego de llamar en nuestro servidor al primer archivo (www.nuestroservidor.com/cgrafico.php, suponiendo que llamamos al primer script grafico.php) nos arrojaría un grafico muy similar al siguiente:









[...] Ver tambien: Open Flash Chart – Mas Graficas para PHP [...]
Hola Arturo, tengo un problema y que no consigo avanzar
Open Flash Chart
IO ERROR
Loading test data
ERROR #2032
This is the URL tried to open ../../data-files/candle.txt
1º Yo no tengo en ningun sitio el candle.txt y tampoco veo en ningun sitio donde intente llamar a esa ruta.
2º En el Archivo de datos he encontrado un include que en mi php5-ofc-library no viene.
include_once( ‘ofc-library/open-flash-chart.php’ );
en mi php5-ofc-library viene
lib
Example
package.xml
open-flash-chart-object.php
build_package.php
Estoy deseperado. A ver si me puedes ayudar. Muchas Gracias de antemano
Hola tengo problemas con la herramienta open-flash-chart
Baje el software de la pagina del fabricante segui los mismos pasos que en tu ejemplo, subi a mi servidor los archivos open-flash-charts.swf, ofc-library para php, cree un archivo php el cual incluyo y por ultimo cree el archivo de los datos llamado chart-data.php y no me aparece la grafica sale una imagen como que esta leyende y luego muesta en la pantaya lo siguiente leyenda :http://climaymas.com/chart-data.php
Necesito hacer unas graficas para unas temperaturas y necesito ayuda, he leido que atodos les ha funcionado gradezco su ayuda
tambien subi el folder js donde viene el archivo sfobjet
“”
“”
“”
Hola Elizabeth,
Lo que sucede es que la libreria no encuentra el archivo de datos (chart-data.php).
Si estas haciendo pruebas en tu equipo te recomiendo que cambies el parametro $_SERVER['SERVER_NAME'] y coloques la ruta completa.
Ejemplo, si tu servidor local es: localhost la instruccion quedaria:
open_flash_chart_object(500,250,’http://localhost/chart-data.php’,false);
Suponiendo que estas colocando la libreria y el archivo de datos en la raiz, en caso contrario deberias colocarle la ruta completa.
Saludos!
Te adoro Arturo
Tengo un buen aqui buscandole al codigo fuente de las librerias y era eso, gracias por tu pronta respuesta, como siempre digo
“A los grandes genios se nos van los detalles ; ) “.
Buenas arturoweb, necesito que me ayudes, estoy realizandon un sitio web para la generación de graficos a partir de una base de datos en php, utilizando open flash chart, pero tengo problemas con la genración del grafico por favor si pueden ayudarme:
La tabla de donde saco la base de datos tiene esta estructura:
[B]Total [/B] [B] value[/B]
10 intel
20 centrino
30 amd
entonces quiero realizar un grafico que me muestre en el eje x los parametros de la tabla de value y el eje y del grafico el total
El codigo que estoy utilizando es el siguiente:
Codigo php.
codigo que genera la grafica:
pie(60,’#505050′,’#000000′);
// Le pasamos 2 arrays, uno con los datos y otro
// con las etiquetas
$g->pie_values( $data, $labels );
// Se asigna los colores para los datos
$g->pie_slice_colours(
array(’#d01f3c’,'#356aa0′,’#C79810′) );
$g->set_tool_tip( ‘#val#%25′ );
$g->title( ‘Gprs’,
‘{font-size:18px; color:#d01f3c}’ );
echo $g->render();
?>
quisisera que me orienten y puedan decirme que estoy haciendo mal y que errores tengo por favor
Saludos y atento a sus comentarios
@napster: Hola, gracias por tu visita.
pie(60,’#505050′,’#000000′): El tercer parametro es una cadena CSS (estilo), le estas pasando un hexadecimal, prueba cambiando este parametro por: {font-size: 12px; color: #404040;}
Trata haciendo esa modificacion y me cuentas. Agradeceria que dieras mas detalles acerca del error que tienes, ya que no me proporcionas informacion al respecto, es decir: se genera un grafico defectuoso o no se genera?
Saludos!
Gracias pana arturoweb, eso era, ahora tengo otra pregunta espero que puedas ayudarme de pana esta broma me tiene loco, estoy tratando de genrar una grafica 3d de barras, siguiendo el mismos parametros de la anterior grafica, pero esta vez me muestra el frame con los valores de la base de datos en los respectivos ejes todo fino, pero el problema es que no veo las barras del diagrma es decir no me las muestra, pero si los valores en los ejes de la grafica los cuales me traigo de mi base de datos, a continuacion te muestro el codigo utilizado:
No se si estare olvidando algun parametro o algo asi:
key( ‘Sitios’, 2 );
//valores de cada fila de la tabla
while( $row = mysql_fetch_array($res) ){
// Añade los valores de cada fila al array de
// datos que le pasaremos a Open Flash Chart
$bar_blue->temp[] =$row['Share'];
//temp[] =$row['Total'];
//$temp[] =$row['Total'];
// Añade las etiquetas de cada fila al array de
// etiquetas que le pasaremos a Open Flash Chart
$valores_x[] =$row['Value'];
}
//************************************************
//$bar_blue= temp[];
// create the graph object:
$g = new graph();
$g->title( ‘Top de Sitios mas visitados’, ‘{font-size:20px; color: #FFFFFF; margin: 5px; background-color: #505050; padding:5px; padding-left: 30px; padding-right: 20px;}’ );
//**************************************************
//$g->bar_3D( 10, ‘#3334AD’, ‘Sitios’, 10 );
//$g->data_sets[] = $bar_blue;
//$g->set_data($temp);
//$g->set_data( $bar_blue);
//$g->data_sets[] = $temp;
$g->data_sets[] = $bar_blue;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->y_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->set_x_labels( $valores_x);
$g->set_y_max( 100 );
$g->y_label_steps( 6 );
$g->set_y_legend( ‘Cantidad de Usuarios’, 12, ‘#736AFF’ );
$g->set_x_legend( ‘Sitios Visitados’, 12, ‘#736AFF’ );
echo $g->render();
?>
Mi pana agradeceria bastante tu ayuda, se que eres un guru en open flash cghart y espero puedas ayudarme brother,
Hola nuevamente, haz los siguiente arreglos:
//Crear el objeto para la barra 1
$barra_azul=new bar_3d( 75, ‘#3334AD’ );
$barra_azul->key( ‘Sitios’, 2 );
//agregar los datos para la barra
while( $row = mysql_fetch_array($res) ){
$barra_azul->data[] =$row['Share'];
$valores_x[] =$row['Value'];
}
$g = new graph();
$g->title( ‘Top de Sitios mas visitados’, ‘{font-size:20px; color: #FFFFFF; margin: 5px; background-color: #505050; padding:5px; padding-left: 30px; padding-right: 20px;}’ );
$g->data_sets[] = $barra_azul;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->y_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->set_x_labels( $valores_x);
$g->set_y_max( 100 );
$g->y_label_steps( 6 );
$g->set_y_legend( ‘Cantidad de Usuarios’, 12, ‘#736AFF’ );
$g->set_x_legend( ‘Sitios Visitados’, 12, ‘#736AFF’ );
echo $g->render();
Prueba con eso y me cuentas si te funciona.
Mi pana arturo ahora si funciono pero, las barras del diagrama se me muestran en la parte superior de la grafica, es decir por encima del titulo centrado de la grafica que es TOP DE SITIOS MAS VISITADOS, encima de este titulo veo las barras y no dentro del diagrama que posee los ejes de la misma
Hola napster, no veo ningun error en el codigo que te envie que pueda generar la situacion que comentas.
Enviame el codigo que estas usando.
Saludos!
Aqui te envio el codigo brothers:
key( ‘Sitios’, 10 );
//valores de cada fila de la tabla
while( $row = mysql_fetch_array($res) ){
// Añade los valores de cada fila al array de
// datos que le pasaremos a Open Flash Chart
$barra_azul->data[] =$row['Share'];
//temp[] =$row['Total'];
//$temp[] =$row['Total'];
// Añade las etiquetas de cada fila al array de
// etiquetas que le pasaremos a Open Flash Chart
$valores_x[] =$row['Value'];
}
//************************************************
//$bar_blue= temp[];
// create the graph object:
$g = new graph();
$g->title( ‘Top de Sitios mas visitados’, ‘{font-size:15px; color: #FFFFFF; margin: 5px; background-color: #505050; padding:5px; padding-left: 5px; padding-right: 5px;}’ );
//**************************************************
//$g->bar_3D( 10, ‘#3334AD’, ‘Sitios’, 10 );
//$g->data_sets[] = $bar_blue;
//$g->set_data($temp);
//$g->set_data( $bar_blue);
//$g->data_sets[] = $temp;
$g->data_sets[] = $barra_azul;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->y_axis_colour( ‘#909090′, ‘#ADB5C7′ );
$g->set_x_labels($valores_x);
$g->set_y_max( 200 );
$g->y_label_steps( 5 );
$g->set_y_legend( ‘Cantidad de Usuarios’, 10, ‘#736AFF’ );
$g->set_x_legend( ‘Sitios Visitados’, 10, ‘#736AFF’ );
echo $g->render();
?>
no se que pasara, y el codigo que hace la llamada a la funcion es esta:
si veo las barras pero por encima del marco de la grafica
Hola otra vez, sigo sin ver algun error. Ya corriste los scripts en varios navegadores?. Puede que sea un problema con el navegador, trata corriendolo en un navegador diferente.
Es lo que se me ocurre hasta el momento y hay que agotar todas las posibilidades de error.
Saludos!
Mi pana, nada es muy raro que se vea la grafica por encima del recuadro de graficación, incluso modifico los pametros de la grafica y nada, me parec estraño, que otra opcion me das, actualmente estoy utilizando open flash chart 1.9.7, sera problemas de la libreria? no creo.
Hola, tengo un problema, quiero graficar los datos que estan dentro de mi base de datos y no puedo, me sale una grafica con ejes y 0,5,10, el cursor me dice indefinido y no se grafica ningun punto, te envio el codigo para que lo cheques y me digas que puedo tener mal, mil gracias.
title( ‘Spoon sales ‘. date(”Y”), ‘{font-size: 26px;}’ );
$g->set_data( $data );
//mi valor maximo en y es 45 asi que pongo 50
$g->set_y_max( 50 );
//Los divido en 10 (5,10,15,20,25…50)
$g->y_label_steps( 10 );
// muestro los datos
echo $g->render();
?>
No se envio todo el codigo lo escribo d enuevo gracias
” //variable tipo arreglo para guardar mis valores
” $data = array();
”
” //Conexión a la base de datos
”
” $con = mysql_connect”(”www.climaymas.com”,”climaym”,”elizabeth1080″) or die (mysql_error());
” mysql_select_db(”climaym_RECORRIDO”,$con) or die (mysql_error());
”
” //Sentencia sql
” $_pagi_sql =mysql_query(”SELECT * FROM grafica”);
”
” //Leo y guardo los registros en el arreglo
” while($row = mysql_fetch_assoc($_pagi_sql))
” {
” $data[] = $row['cantidad'];
” }
”
” // incluyo la libreria para la grafica
” include_once( ‘ofc-library/open-flash-chart.php’ );
”
” //Creo el objeto
” $g = new graph();
”
” //Pongo el titulo, mismo del ejemplo para no errarle
”
” $g->title( ‘Spoon sales ‘. date(”Y”), ‘{font-size: 26px;}’ );
” $g->set_data( $data );
”
” //mi valor maximo en y es 45 asi que pongo 50
” $g->set_y_max( 50 );
”
” //Los divido en 10 (5,10,15,20,25…50)
” $g->y_label_steps( 10 );
”
” // muestro los datos
” echo $g->render();’
Hola eliz, trate de correr el codigo que me enviaste y obtuve lo siguiente:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘climaym’@'89.17.220.65′ (using password: YES) in /home/webcindario/m/y/mytestserver/opencharts/charts.php on line 3
Access denied for user ‘climaym’@'89.17.220.65′ (using password: YES)
Esa es la razon por la cual te muestra “undefined”, ya que no alcanza a construir el grafico. Comprueba que te puedas conectar a la base de datos antes de intentar crear el grafico, es decir antes de llamar a la funcion:
open_flash_chart_object( … );
Saludos!
Cordial saludo, existe algún problema en cuanto a la versión de PHP que se este usando?
Hola Miguel, No hay problemas en cuanto a las versiones de PHP usadas.
Saludos!
Gracias por responder.
Resulta que tengo un servidor Linux Ubuntu de pruebas montado con PHP 5, Apache 2 y MYSQL 5, en él funciona todo a la perfección, pero al implementarlo en el servidor real, Linux (desconozco la distribución), Apache 1.3 y MySQL 4 no funciona. Se que no es lo optimo realizar pruebas con versiones nuevas pero es lo único de lo que dispongo en el momento.
Este es el error que se genera cuando intento ver el php correspondiente a los datos:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Gracias.
Hola Miguel,
Revisa el log del servidor, para tener un poco mas de detalle sobre el error.
El archivo de log suele encontrarse generalmente en: /var/log/apache/error.log
Depronto el error puede ser porque estas haciendo mal una consulta y el script PHP tarda mucho ejecutandose, lo cual hace que el servidor no responda y devuelve un error. Esa es una de las posibles causas, pero hasta no ver el log del servidor es poco probable saberlo con exactitud.
Si no puedes ver el log del servidor, te recomiendo que revises detenidamente el script PHP de datos.
Saludos!
Hola, sera que alguien me puede responder si open Open Flash Chart funciona en firefox? yo no veo nada, no se si es un algo que le falta para funcionar en este navegador, en explorer si se ve perfecto! agradezco pronta respuesta!!
Hola yuma, OpenFlashChart funciona perfectamente tanto en Firefox como en Explorer.
Comprueba que tienes instalado el plugin de flash en firefox. Puede ser eso el causante que no veas las graficas en este navegador.
Saludos!
hola gracias por tu atención.
Extrañamente lo arreglé, borre los archivos que habia subido y los volvi a subir (exactamente iguales) y funcionó.
XD
Gracias por todo.
Pueden ver el resultado en: http://www.udca.edu.co/apliphp/pregrado/abrirgrafica.php
Hola arturo web tengo un problema con la libreria OpenFlashChart cuando quiero ver el ejemplo que han puesto en este espacio me aparece en el navegador el mensaje:
Open Flash Chart
IO ERROR
Loading test data
Error #2032
espero y puedas ayudarme con anticipacion gracias…
Estoy probando el script y me parece fenomenal, pero me podrias decir arturoweb como le coloco diferentes graficas es decir, barras, tortas, … de diferentes colores,… de diferentes formas de presentar los datos
Buenas tardes, me gustaría que me den una mano con algo. no puedo hacer desaparecer el codigo [b]“Open Flash Chart IO ERROR Loading test data Error #2032″[/b]. Pruebo y pruebo y nada. puede ser que no sirva bajo linux?. alguien lo pudo hacer andar en linux?.
@Emiliano y jose luis: El error #2032 se ha presentado muchas veces y por lo tanto existen una gran cantidad de razones por la cual se presenta, les recomiendo que miren los foros oficiales de Open Flash Chart, donde hay muchas conversaciones y soluciones a este tipo de error. Estan en ingles estos foros, pero realmente no es necesario ser bilingue para entenderlos.
@Niniqui: Me gustaria que fueras un poco mas precisa respecto a que tipo de graficas deseas hacer. Por lo pronto puedes mirar en la pagina web de OpenFlashChart, donde explican como hacer cada uno de los tipos de graficos (barra, torta, lineales, etc).
Saludos!
@Emiliano: Si funciona sobre Linux
de:pedro
para:el GURU
asunto: F1, S.O.S. , HELP
Me salio este error y no se ke hacer… agradesco SU colaboracion
Fatal error: Call to undefined method stdClass::toString() in C:\xampp\htdocs\ESTADISTICA\php-ofc-library\open-flash-chart.php on line 1225
post.
estoy empezando en el uso de esto… no soy my experto todabia
GRACIAS
Hola Pedro:
El error es de libreria, te recomiendo que vayas nuevamete al sitio de OpenFlash Chart y descargues la ultima version estable y la reinstales en tu servidor.
Saludos!
Hola Arturo, tengo una duda en cuanto al tiempo de carga de los gráficos, quisiera saber en tu experiencia que tan rápida es la descarga del gráfico hasta que se puede visualizar completamente cuando se utilizan muchos datos que se leen desde una base de datos, te agradezco tu atención
hola Arturo por fa ayudame necesito realizar las leyendas de barras de manera dinamica extrayendo de mi base de datos pero no logro entender como hacerlo podrias explicarmelo
te agradesco de antemano la ayuda
te envio mi codigo echo en torta pero en barra no lo se hacer
= ‘01/07/2008′) AND
(maestro.Fecha_Cierre = ‘$FECHAENTRADA’) AND
(maestro.Fecha_Cierre 0)
{
$description = array();
$contador = 0;
$total = 0;
while ($reg = mysql_fetch_array($res_query))
{
$description[$contador] = $reg["Descripcion"];
$data[$contador] = $reg["cantidad"];
$total += $reg["cantidad"];
$contador++;
}
//////////////////////////////////////////////////////////////////////////////
include_once( ‘ofc-library/open-flash-chart.php’ );
$g = new graph();
$g->pie(80,’#505050′,’{font-size: 12px; color: #404040;’);
$g->pie_values( $data, $description );
$g->pie_slice_colours( array(’#183118′,’#238477′,’#2B7F9C’) );
$g->set_tool_tip( ‘#val#’ );
$g->title( ‘TITULO DEL GRAFICO’, ‘{font-size:18px; color: #d01f3c}’ );
//////////////////////////////////////////////////////////////////////////////
echo $g->render();
}
mysql_free_result($res_query);
?>
Hola mariageles, las leyendas se hacen de la siguiente manera:
$g->set_x_labels(array('Enero','Febrero','Marzo','Abril','Mayo','Junio'));En el ejemplo anterior estableci las leyendas para el eje X, para hacerlo de forma dinamica y suponiendo que tienes los valores en un array luego de extraerlos de la base de datos, seria:
$g->set_x_labels($description);Espero que te pueda servir de ayuda, si no era eso a lo que te referias, estaré atento para resolverte nuevas dudas.
Saludos!
hola Arturo esa era mi pregunta sin embargo no logro graficar nada podrias ayudarme
te envio mi codigo para ver si consigues mi error de antemano gracias de antemano por la ayuda
= ‘$FECHAENTRADA’) AND
(maestro.Fecha_Cierre 0)
{
$description = array();
$contador = 0;
$total = 0;
while ($reg = mysql_fetch_array($res_query))
{
$description[$contador] = $reg["Descripcion"];
$data[$contador] = $reg["cantidad"];
$total += $reg["cantidad"];
$contador++;
}
$g = new graph();
$g->title( ‘Bar Chart’, ‘{font-size: 20px;}’ );
$g->data_sets[] = $data;
$g->set_x_labels( $description );
$g->set_x_label_style( 10, ‘#9933CC’, 0, 2 );
$g->set_x_axis_steps( 2 );
$g->set_y_max( 10 );
$g->y_label_steps( 4 );
$g->set_y_legend( ‘Open Flash Chart’, 12, ‘#736AFF’ );
echo $g->render();
}
mysql_free_result($res_query);
?>
hola, estoy haciendo graficos a partir de una base de datos, el problema es que solo veo los eje no las barras acontinuacion envio mi codigo, ojala pudieras ayudarme, me urge
title( ‘Estadisticas’, ‘{font-size:20px; color: #d01f3c}’ );
$g->set_data($data);
$g->bar_filled( 20, ‘#9933CC’, ‘#8010A0′, ‘Porcentajes’, 9 );
$g->set_x_axis_steps( 1 );
$g->set_x_label_style(10, ‘#9933CC’, 0, 1);
$g->set_x_labels($labels);
$g->set_x_legend(’Respuestas dadas’, 12, ‘#736AFF’ );
$g->y_label_steps( 5 );
$g->set_y_max( 10 );
$g->set_y_legend( ‘Total de alumnos’, 12, ‘#736AFF’ );
echo $g->render();
// Código que crea el objeto Flash
include_once ‘php-ofc-library/open_flash_chart_object.php’;
open_flash_chart_object( 800, 450, ‘http://localhost/datafromdb2.php’, false);
?>
ahora si envio completo el codigo:
$db = mysql_connect(”localhost”, “root”,”root”)
or die(”Imposible conectar a la base de datos”);
mysql_select_db(”moodle”, $db)
or die(”Imposible consultar la base de datos”);
// Consulta la tabla
$res = mysql_query(”select grade from mdl_quiz_grades where id = ‘1′”,$db)
or die(”Sentencia SQL incorrecta”);
$data = array();
$labels= array();
// Itera sobre el resultado de la consulta para
// obtener los campos que necesitamos para
// generar la gráfica
//Devuelve una matriz que corresponde a la sentencia extraida.
while( $row = mysql_fetch_array($res) )
{
// Añade los valores de cada fila del arreglo de
// datos que le pasaremos a Open Flash Chart
$data[] =$row[1];
// Añade las etiquetas de cada fila de arreglo de
// etiquetas que le pasaremos a Open Flash Chart
$labels[] =$row[2];
}
// Cerramos la conexión con la base de datos
mysql_close($db);
// PASO 2 – Creacion de la grafica
// Creamos el objeto Gráfica
include_once( ‘php-ofc-library/open-flash-chart.php’ );
$g = new graph();
$g->title( ‘Estadisticas’, ‘{font-size:20px; color: #d01f3c}’ );
$g->set_data($data);
$g->bar_filled( 20, ‘#9933CC’, ‘#8010A0′, ‘Porcentajes’, 9 );
$g->set_x_axis_steps( 1 );
$g->set_x_label_style(10, ‘#9933CC’, 0, 1);
$g->set_x_labels($labels);
$g->set_x_legend(’Respuestas dadas’, 12, ‘#736AFF’ );
$g->y_label_steps( 5 );
$g->set_y_max( 10 );
$g->set_y_legend( ‘Total de alumnos’, 12, ‘#736AFF’ );
echo $g->render();
// Código que crea el objeto Flash
include_once ‘php-ofc-library/open_flash_chart_object.php’;
open_flash_chart_object( 800, 450, ‘http://localhost/datafromdb2.php’, false);
?>
Hola Excelente el tuto, hice una pagina con un formulario html donde selecciono unos parametros y luego llamo a la funcion que crea la grafica OFC; y tambien tengo el archivo de datos donde se realiza la consulta a la BD y se definen los datos para la grafica (simil al del ejemplo del principio). Dentro de la consulta a la BD debo poner una condicion (where a.fecha>= $var) donde necesito el valor de una variable del form ($var). COMO PUEDO HACER PARA ENVIAR EL VALOR SELECCIONADO EN EL FORM AL ARCHIVO DE DATOS.
Desde ya se agradece una temprana respuesta .
Saludos y sigan asi !!
Hola matias,
para enviar valores al archivo de datos, lo haces de la siguiente forma:
open_flash_chart_object(500,250,’http://’. $_SERVER['SERVER_NAME']."/chart-data.php?var=$valorvariable",false);Luego, desde el archivo de datos recuperas el valor de la siguiente manera:
$variable=$_GET['var'];
Espero, te sirva de ayuda y sigue visitandonos!
Holaa!!
yo estoy probando el ejemplo que das, pero me da errores,
A ver, lo q yo hehecho es:
1.- descargarme la libreria y copiar php5-ofc-library y open-flash-chart.swf a /opt/lampp/htdocs/xampp, mi servidor php.
2.- Copio los dos archivos, del ejemplo en la misma carpeta (en el servidor)
3.- Abro un navegador para ver el ejemplo y me da el siguiente error:
Warning: include_once(/proyecto/ofc-library/open_flash_chart_object.php) [function.include-once]: failed to open stream: No existe el fichero ó directorio in /opt/lampp/htdocs/xampp/ejemplo.php on line 2
Warning: include_once() [function.include]: Failed opening ‘/proyecto/ofc-library/open_flash_chart_object.php’ for inclusion (include_path=’.:/opt/lampp/lib/php’) in /opt/lampp/htdocs/xampp/ejemplo.php on line 2
Fatal error: Call to undefined function open_flash_chart_object() in /opt/lampp/htdocs/xampp/ejemplo.php on line 3
pd: sabeis la direccion de tutoriales???
gracias
Hola Elenea,
Cambia el nombre del directorio php5-ofc-library por ofc-library. Otra opcion es modificar la linea de inclusion de la libreria: include_once( ‘ofc-library/open-flash-chart.php’ ); por: include_once( ‘php5-ofc-library/open-flash-chart.php’ );
Saludos!
HOla el nombre lo cambie al copiarlo, solo lo indique pq fue esa carpeta la q copie del archivo zip, pq comono habia una con nombre “ofc-library”, pense q la otra era la q necesitaba.
Gracias por la respuesta, se te ocurre otra cosa??
Hola elena,
El error es bastante claro, no encuentra la libreria.
Dentro del directorio donde tienes el archivo ejemplo.php debe estar la carpeta con la libreria. Asegurate que la libreria no esta como subdirectorio de otra carpeta, y que estás colocando de forma correcta la ruta del directorio de la libreria en la funcion include_once.
Saludos!
Hola!!
te escribo el contenido del archivo que he llamado ‘ejemplo.php’:
la funcion include la he escrito de varias formas:
include_once ‘ofc-library/open_flash_chart_object.php’;
include_once “ofc-library/open_flash_chart_object.php”;
include_once (’ofc-library/open_flash_chart_object.php’);
include_once (”ofc-library/open_flash_chart_object.php”);
include_once `ofc-library/open_flash_chart_object.php`;
pero siempre me da error.
La carpeta ‘ofc-library’, la tengo en la misma ruta donde este archivo, y dentro de esta carpeta esta el archivo ‘open_flash_chart_object.php’,
Ya no sé como escribirlo, si me pudieras dar tb la direccion de algun tutorial, te lo agrdecería.
Gracias por todo.
Un saludo
HOla!!
Ya lo he solucionado, era por las comillas, pero me sigue dando otro error :
Parse error: syntax error, unexpected $end in /opt/lampp/htdocs/xampp/ejemplo.php on line 5
y el fichero solo tiene 4 lineas. No se si es q hay q ponerle alguin end.
graicas de antemano
Hola Elena,
Fuente: http://agamum.net/blog/archivo/parse-error-syntax-error-unexpected-end.xhtml
Saludos!
Hey, volví por aca buscando en google acerca de pasar datos por GET o POST a la gráfica, gracias!!!!
hola buenos dias arturo, estube probando el ejemplo de open flash chart y me manda el siguiente error :
Parse error: syntax error, unexpected T_STRING in c:\servidor\web\grafico.php on line 13
le llame “grafico” al archivo de datos a ese codigo no le modifique nada pero si a donde se le llama ala funcion de la grafica.
el error de la linea 13 es este :
include_once( ‘ofc-library/open-flash-chart.php’ );$g = new graph(); //creacion del objeto
// Titulo de la grafica
$g->title( ‘Spoon sales ‘. date(”Y”), ‘{font-size: 26px;}’ );
$g->set_data( $data );
por favoor si segui mal los pasos explicamelo. =)
Hola marcela, si copiaste y pegaste el codigo de mi blog al archivo grafico.php, te recomiendo que revises las comillas, es decir borralas y vuelve a escribirlas, pudo haber copiado un tipo de comillas diferente o tildes que PHP reconoce como errores.
Verifica eso y me cuentas.
Saludos!
este error me lo marca en el navegador ahora:
&title=Spoon+sales+2009,{font-size: 26px;}& &x_axis_steps=1& &y_ticks=5,10,6& &line=3,#87421F& &values=13,39,45,45,0,44,31,19,12,12,32,1& &x_labels=Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec& &y_min=0& &y_max=60&
y gracias arturo por haberme ayudado en lo anterior eran las comillas.
Hola marcela, esa porcion de codigo que me muestras es lo que te arroja el navegador en vez de mostrarte el grafico?
O te muestra el grafico y además te muestra eso?
eso es lo que me marca el navegador no me muestra ningun grafico sino esos codigos y no me la marca como error me confundi al haberte comentado.
mmm .. el llamado a la funcion lo estas haciendo correctamente? … tienes instalado el flash-player en el navegador?
El archivo que estas abriendo es el que hace el llamado a la funcion cierto?
Verifica que estas haciendo los pasos correntamente o prueba en otro navegador.
hola arturo buenos dias ya me imagino que quedo todo, si si tengo el flas-player instalado en el navegador pero aora me muestra que esta cargando la grafica ya no me muestra condigo ni error me aparece que esta cargando los datos ai queda :p y nuevamente gracias poor tu ayuda arturo…
Tocayo, excelente aporte, en verdad. Gracias de antemano por esta labor.
Veras para no quitarte mucho tiempo a ti, podrias pasarme el correo de Jose Luis el compañero que te pidio apoyo para su sitio web, pues su resultado es muy parecido a lo que estoy buscando.
Saludos
Perdon tocayo es miguel monroy el que tiene el resultado como el que requiero.
Saludos
Hola Arturo, Gracias por tu visita.
Voy a enviar un correo a Miguel Monroy y si el me autoriza darte el correo, con gusto te lo enviare por e-mail.
Tocayo nuevamente yo, mira supuse que hacer los ejercicios de ejemplo seria sencillo (copiar y pegar) pero tras un tiempo de leer, y ver el codigo no se pone la grafica.
Archivo 1:
+++++++++++++++++++++++++++
Archivo 2:
<?php
// Generar datos randomicos:
srand((double)microtime()*1000000);
$max = 50;
$data = array();
for( $i=0; $ititle( ‘Spoon sales ‘. date(”Y”), ‘{font-size: 26px;}’ );
$g->set_data( $data );
// valores del eje X
$g->set_x_labels( array(’Jan’,'Feb’,'Mar’,'Apr’,'May’,'Jun’,'Jul’,'Aug’,'Sep’,'Oct’,'Nov’,'Dec’));
// maximo valor del eje Y
$g->set_y_max( 60 );
// pasos del eje y
$g->y_label_steps( 6 );
// mostrar los datos
echo $g->render();
?>
Que me falta o sobra? Saludos y gracias. Espero que Miguel Monroy acepte.
Archivo 1:
Hola, al menos ya me corre una grafiaca con mysql, les dejo el link http://www.cambioclimatico.climanayarit.gob.mx, si les interesa el codigo con confiaza envienme un mail y se los hago llegar, saludos. alvarezbravo@lycos.com
que tal, Acabo de descargar el archivo, tengo el WAMP 2.0 (php 2.58 y apache 2.2.11), y como indicas instale en la raiz (www) el archivo ofc-library para la versión de php5. Pero cuando ejecuto los códigos ejemplos que indicas no lo hace, imprime en pantalla error en el segundo ejemplo:
//***************************************************************************
Warning: include_once(ofc-library/open-flash-chart.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\prueba.php on line 10
Warning: include_once() [function.include]: Failed opening ‘ofc-library/open-flash-chart.php’ for inclusion (include_path=’.;C:\php5\pear’) in C:\wamp\www\prueba.php on line 10
Fatal error: Class ‘graph’ not found in C:\wamp\www\prueba.php on line 11
//***************************************************************************
y lo único que hice fue quitarles los acentos que tenia por apostrofes ya que me marcaba error, el código que pegue y ejeute es el esiguietne:
<?php
// Generar datos randomicos:
srand((double)microtime()*1000000);
$max = 50;
$data = array();
for( $i=0; $ititle( “Spoon sales “. date(”Y”), “{font-size: 26px;}” );
$g->set_data( $data );
// valores del eje X
$g->set_x_labels( array(’Jan’,'Feb’,'Mar’,'Apr’,'May’,'Jun’,'Jul’,'Aug’,'Sep’,'Oct’,'Nov’,'Dec’ ) );
// maximo valor del eje Y
$g->set_y_max( 60 );
// pasos del eje y
$g->y_label_steps( 6 );
// mostrar los datos
echo $g->render();
?>
jejje como vez ya me desespere… TE AGRADECERE TU VALIOSA AYUDA diciendo donde la calabazee…
Bueno, claramente PHP no encuentra el archivo de la libreria, bien porque estas copiando mal la ruta o por las comillas que estas usando en la funcion include.
Uno de los comentarios anteriores muestra el mismo error y se debia a problemas con las comillas.
Saludos.
Hola, solicito ayuda para solucionar el siguiente problema:
Recien bajé el open chart. Al tratar de hacer el ejemplo que viene en el primer tutorial me aparece el error que pasteo aquí abajo.
La carpeta ofc-library no la encuentra. La he buscado pero tampoco la encuentro yo manualmente. Renombré la carpeta que se llama php-ofc-library a ofc-library, pero no funciona ¿que puedo hacer?.
Gracias de antemano y saludos!
Mensaje de Error:
Warning: include_once(ofc-library/open_flash_chart_object.php) [function.include-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\chart.php on line 7
Warning: include_once() [function.include]: Failed opening ‘ofc-library/open_flash_chart_object.php’ for inclusion (include_path=’.;\xampp\php\pear\’) in D:\xampp\htdocs\chart.php on line 7
Fatal error: Call to undefined function php() in D:\xampp\htdocs\chart.php on line 8
Hola, tienes el mismo error del comentario anterior. No encuentra el archivo, si tu manualmente tampoco lo encuentras, sencillamente no has descargado correctamente la libreria o no la estas ubicando en el sitio correcto.
El problema no es de la libreria es de ruta del archivo. En eso no puedo ayudarte.
Gracias Arturo. Descargué nuevamente el archivo, instalé las carpetas en la carpeta raíz de mi server. Hice los ejemplos, me arroja una gráfica, peeero… no es la gráfica que aparece en el ejemplo. Otro detalle es que el archivo open_flash_chart_object.php no existe, sino que en el código le cambié los _ por – (guiones bajos por guiones medios) y quedo como open_flash_chart_object.
Helpme please que me estoy volviendo locooo.
Que tipo de grafica te muestra? Recuerda que la grafica del ejemplo no es la de barras sino la grafica lineal.
Hola Arturo… por lo que veo me puedes ayudar….
A mi me pasa lo mismo que a Alexander Galue, referente a los de los guiones y el gráfico que sale.
Para resumir, tengo en el archivo de nombre “temp2.php”:
en “temp3.php” está el ejemplo del gráfico ‘Spoon sales’, y no aparece el ejemplo, sino que aparece otro gráfico.
Ahora si coloco la siguiente instrucción en “temp2.php”:
aparece el mismo gráfico….
Ya lo probé en IE7, FF3 y Google Chrome.
Si tienes algún mail donde pueda enviarte la imagen del gráfico que aparece, te lo agradecería.
Saludos….
haber si ahora aparece el código:
Para resumir, tengo en el archivo de nombre “temp2.php”:
en “temp3.php” está el ejemplo del gráfico ‘Spoon sales’, y no aparece el ejemplo, sino que aparece otro gráfico.
Ahora si coloco la siguiente instrucción en “temp2.php”:
aparece el mismo gráfico….
Ya lo probé en IE7, FF3 y Google Chrome.
Si tienes algún mail donde pueda enviarte la imagen del gráfico que aparece, te lo agradecería.
Saludos….
la tercera es la vencida:
Para resumir, tengo en el archivo de nombre “temp2.php”:
include_once ‘ofc-library/open-flash-chart-object.php’;
open_flash_chart_object( 500, 250, ‘http://misitio/temp3.php’, false );
en “temp3.php” está el ejemplo del gráfico ‘Spoon sales’, y no aparece el ejemplo, sino que aparece otro gráfico.
Ahora si coloco la siguiente instrucción en “temp2.php”:
include_once ‘ofc-library/open-flash-chart-object.php’;
open_flash_chart_object( 500, 250, ”, false );
aparece el mismo gráfico….
Ya lo probé en IE7, FF3 y Google Chrome.
Si tienes algún mail donde pueda enviarte la imagen del gráfico que aparece, te lo agradecería.
Saludos….
Ahora entendí todo…..
Se trata de “Open Flash Chart 2″, por eso que salía ese gráfico.
Vean este link que es donde sale toda la información para este nuevo tipo de gráficos:
http://teethgrinder.co.uk/open-flash-chart-2/
greetings!
ArturoWEB,,,
Por favor me pudes explicar como puedo hacer esto pues necesito enviar un dato desde un a la consulta (SQL “algo” where agente=’$agent’) y luego ver el grafico….
Si lo mando quemado ” $agent=’fjaya’ ” si me grafica correctamente,,,lo que no me funciona es pasarlo como parametro…
AYUDAMEEEEEE…!!!!!!!!!
open_flash_chart_object(500,250,’http://’. $_SERVER['SERVER_NAME'].”/chart-data.php?var=$valorvariable”,false);
Luego, desde el archivo de datos recuperas el valor de la siguiente manera:
$variable=$_GET['var'];
Lo que quiero es pasar los datos de un formulario a la la consulta (SQL) y generar el grafico,,,
Como te indique al quemarlo si funciona correctamenete el grafico…
Hola Frank,
Lo puedes hacer justamente como ya lo habia indicado en un comentario anterior:
En el llamado a la funcion del grafico pasas la variable ($agente):
open_flash_chart_object(500,250,’http://’. $_SERVER['SERVER_NAME'].”/chart-data.php?agente=".$agente,false);Luego en el archivo de datos que es donde tienes la consulta SQL recuperas ese valor:
$agente=$_GET['agente'];Luego simplemente lo usas, “SQL algo WHERE agente=”.$agente;
Si no te recupera el valor con $_GET, prueba con $_POST ya que no recuerdo el metodo que usa para el envio del formulario, pero deberia ser $_GET.
Cuando pasas la variable asegurate de concatenarlo, que lo olvide y omiti esa parte en el comentario anterior. Talvez por eso no te sirve, ya que el valor que esta enviando es $agente y no el valor de la variable.
Muchas Gracias ArturoWEB….!!!!
Lo probe y esta todo muy bien…..gracias por tu valiosa ayuda.
ArturoWEB,,,,
Me queda una duda se puede enviar mas de una variable,,!!! o solo acepta una
Se pueden enviar todas las variables que quieras. La primera va antecedida del signo “?”, el resto de ellas del signo “&”. Y las recuperas de la misma forma.
open_flash_chart_object(500,250,’http://’. $_SERVER['SERVER_NAME'].”/chart-data.php?agente=”.$agente."&variable=".$var2."&variable3=".$var3,false);//Luego en el archivo de datos
$agente=$_GET['agente'];
$variable2=$_GET['variable'];
$variable3=$_GET['variable3'];
Gracias otra vez…ArturoWEB…..!!! Espero no importunar con tanta preguntadera pero estoy inciando en esto y tu ayuda fue muy importante.
Atte. Fr@nk….
Hola: estaba navegando por internet cuando encontre este sitio y me anime a escribirte. Intento graficar las calificaciones de los alumnos aparentemente ya funcionaba pero al hacer clic en el vinculo de graficar me muestra una grafica lo malo es que siempre me muestra la misma para todos los alumnos aun cundo las calificaciones son diferentes. Te agradeseria si me puedes ayudar a encontrar el error.
Te envío el código:
Grafica de calificaciones por materia de cada alumno
<?
include”conexion.php”;
$sql= “SELECT mat.descripcion,cal.calificacion,datos.nombre FROM datosgenerales as datos, calificaciones as cal, materias as mat WHERE datos.nocontrol=cal.nocontrol and mat.cvemateria = cal.cvemateria and datos.nocontrol=’”. $_GET['alumno'] .”‘”;
$result=mysql_query($sql,$conexion)or die(mysql_error());
$gestor = fopen(”datos.xml”, “w”);
// Aqui se debe insertar la linea con los atributos para la gráfica.
$cabezal= ”
4DB397
</series_color
“;
$linea2= ”
“;
while($row=mysql_fetch_row($result)){
$linea1 .= “$row[1]\n”;
$linea2 .= “$row[0]\n”;
$nombre = $row[2];
}
$linea1= ”
$nombre” . $linea1;
$linea1 .= “\n”;
$linea2 .= “\n”;
$final = ”
bar
“;
$contenido = $cabezal . $linea2 . $linea1 . $final;
fwrite($gestor, $contenido);
fclose($gestor);
include “cerrar_conexion.php”;
echo ”;
//echo ”;
?>
Hola arturoweb .
Tengo un problema, ojala y me puedas ayudar.
EL ejemplo que colocas en el blog funciona correctamente, siempre y cuando respete las ‘rutas’ tanto del directorio como de los archivos .swf y .php .
Pero, necesito graficar algunos datos en PHP bajo el modelo Model View Controller, el cual exige tener separadas las librerias de los archivos de datos, y es aqui donde la graficacion no funciona .
El servidor es apache2, mysql2, php5.
Archivo de datos :
apache/htdocs/mi_web/public/files/chart-data.php
Directorio OFC :
apache/htdocs/mi_web/library/ofc-library/*.php
Archivo SWF :
apache/htdocs/mi_web/library/open_flash_chart.swf
No manda error alguno, sin mebargo no muestra ninguna grafica.
Como puedo solucionar esto?
Gracias por la ayuda .
Hola Edgar, asegurate de estar pasando bien las rutas tanto a la libreria cuando haces el inlude_once como al archivo de datos cuando haces el llamado a la funcion open_flash_chart_object.
No hay ninguna diferencia en cuanto a esto, salvo escribir bien las rutas de los archivos, por lo tanto no deberias tener problemas.
En tu caso creo que seria algo como esto:
include_once 'library/ofc-library/open_flash_chart_object.php';open_flash_chart_object(500,250,'http://'. $_SERVER['SERVER_NAME'].'public/files/chart-data.php',false);
El codigo anterior va en la pagina o archivo donde quieres mostrar el grafico, suponiendo que se encuentra en el directorio ‘mi_web’. Si este archivo (grafico.php) estuviese en otro sitio la ruta anterior no seriviria. Por ejemplo, si estuviese en la misma ruta que esta el archivo de datos el codigo cambiaria de la siguiente forma:
include_once '../../library/ofc-library/open_flash_chart_object.php';open_flash_chart_object(500,250,'http://'. $_SERVER['SERVER_NAME'].'/chart-data.php',false);
La ruta de inclusion de la libreria cambiaria, ya que tendrias que bajar dos directorios (files y public) para luego encontrar la libreria en library/ofc-library/
Este mismo principio aplica para la inclusión que haces en el archivo de datos. Ya que dicho archivo esta en un directorio diferente al de la libreria, debes bajar dos niveles y luego ubicar la libreria.
Espero que me haya hecho entender, cualquier duda escribe nuevamente.
Saludos
Hola Arturo .
Nada, el área del grafico aparece en blanco.
mi_grafica.php :
include_once ‘library/ofc-library/open_flash_chart_object.php’;
open_flash_chart_object(300,200,’http://mivirtualhost.miweb.com.mx/public/files/chart-data.php’,false) ;
chart-data.php
include_once( ‘/usr/local/apache-2.0.61/htdocs/miweb/library/ofc-library/open-flash-chart.php’ );
al colocar http://mivirtualhost.miweb.com.mx/public/files/chart-data.php aparecen los datos correctamente, como en tu ejemplo.
Tengo a open-flash-chart.swf en en directorio raiz de mi web : htdocs/miweb/
No marca error, solo el área en donde debería aparecer el grafico esta vacía.
Como ves, Intento con la version 2.0 ?
Hola Edgar, está mal la forma como colocas esa ruta: /usr/local… deben ser direcciones relativas.
Prueba de la siguiente forma:
mi_grafica.php
include_once($_SERVER["DOCUMENT_ROOT"].'/library/ofc-library/open_flash_chart_object.php');open_flash_chart_object(300,200,’http://'.$_SERVER['SERVER_NAME'].'/public/files/chart-data.php’,false) ;
chart-data.php
include_once( $_SERVER["DOCUMENT_ROOT"].'/library/ofc-library/open-flash-chart.php' );Prueba y me cuentas como te va.
Que tal Arturo !
Quedo solucionado el error, pero me afecta en otro lado del sitio, te cuento.
Colocando las rutas relativas como me indicas, si funcionó, y también de la forma como lo tenía antes de hacer este último cambio (2009-02-24 18:10:47).
La causa del error : estoy usando un archivo .htaccess para negar el acceso a los archivos que estan eabajo del directorio miweb/ … también me es útil para redireccionar hacia una pantalla de login para el acceso de usuarios. Pero su existencia es la que impide la aparición de los datos del gráfico, al quitarlo, el gráfico aparece sin problema.
Ahora tengo que investigar la manera en la que se pueda redireccionar e impedir el acceso a los archivos via browser sin que se vea afectado el OFC.
Gracias por la ayuda.
Hola de nuevo.
Arturoweb, sabes como indicar a la libreria .php que busque a open-flash-chart.swf en una ubicación distinta ?
Hasta el momento había mantenido el swf en el directorio raíz de mi sitio (miweb/), pero ahora tengo la necesidad de agregarlo al directorio library (miweb/library/) . Muevo el archivo, pero el gráfico deja de funcionar.
No he encontrado documentación al respecto.
Agradezco mucho tu ayuda
Hola, como estas ?
Solucionado, es el último parametro que se pasa al archivo :
open_flash_chart_object(800,150,’application/models/chart-data.php’,false,‘library’);
Saludos
Hola Edgar,
Me alegra que hayas podido solucionar el problema y que además lo hayas compartido para que otras personas puedan beneficiarse.
Gracias por el aporte!
Un saludo
Porfis porfis a ver si ahora si me puedes ayudar. Hace dias te escribi un comentario y agregue el codigo que estaba usando para la grafica pero no he recibido respuesta y veo que todos participan muy bien aqui. Mi problema es que mi grafica siempre toma los mismos valores, estos se generan automaticamente a traves de un xml. Cuando hago clic en generar grafica me voy a mi carpeta raiz y consulto mi xml y si toma los valores que tengo en mi base de datos pero el grafico siempre muestra los mismos, no etiendo donde esta el error.
Hola lila, perdón no contestarte cuando preguntaste pero en esos días estuve un poco ocupado.
Escribe el código del archivo de datos y de la linea donde haces el llamado a la función para revisarlo y poder ayudarte.
Un Saludo.
Muchas gracias ojala puedas ayudarme.
Este es el codigo del archivo del cual tomo mis datos. De hecho es el mismo que te envie la primera vez. Más abajo te indico la linea donde se hace el llamado a la funcion.
<?
include”conexion.php”;
$sql= “SELECT mat.descripcion,cal.calificacion,datos.nombre FROM datosgenerales as datos, calificaciones as cal, materias as mat WHERE datos.nocontrol=cal.nocontrol and mat.cvemateria = cal.cvemateria and datos.nocontrol=’”. $_GET['alumno'] .”‘”;
$result=mysql_query($sql,$conexion)or die(mysql_error());
//Esta es la linea de la funcion donde mando llamar a mi archivo
//xml que se llama datos.xml
$gestor = fopen(”datos.xml”, “w”);
// Aqui se debe insertar la linea con los atributos para la gráfica.
$cabezal= ”
4DB397
Hola lila, el código que te pido es donde pasas los datos para la gráfica y el llamado a la función open_flash_chart_object.
Hola Arturito mira la verdad he estado revisando mi codigo y no veo en ninguno de ellos la parte que me mencionas. No se que tanto afecte eso a mi sistema pero tal vez por eso no me funciona. Me puedes explicar exactamente donde iria esa parte. El que te envie es el unico archivo php que tengo, bueno y uno que se llama datos.php. Este es el codigo:
Gracias eres muy atento.
Documento sin título
<?
include”conexion.php”;
$sql= “SELECT datos.nocontrol,datos.nombre,car.descripcion,datos.semestre FROM datosgenerales as datos, carreras as car, materias as mat WHERE datos.clavecarrera=car.cvecarrera and datos.clavecarrera=mat.cvecarrera and datos.semestre=mat.semestre;”;
$result=mysql_query($sql,$conexion)or die(mysql_error());
echo’
No.ControlNombreCarreraSemestreAcción
‘;
while($row=mysql_fetch_row($result)){
echo”
$row[0]$row[1]$row[2]$row[3]
Grafica
“;
}
echo”";
include “cerrar_conexion.php”;
?>
No entiendo porque envias el archivo de conexion a la base de datos si no tiene nada que ver con la grafica, el que deberias poner es el archivo de datos, ademas del pedazo de codigo donde haces el llamado a la funcion que pinta la grafica.
Sigue el ejemplo que está en este post.
Estimado Arturo:
Recien vi la pagina y me parece muy interesante, lo que quisiera pedirte es que tanto los pasos 2 y 3 lo coloques en un archivo comprimido, cosa que cuando bajemos las librerías y pongamos en nuestro servidor web sea ya mas facil ejecutar el archivo, ya que como esta creo que hay errores en las comillas y desde ahi no esta funcionando.
Agradesco mucho la colaboración que nos brindas y se que esto nos servira a muchos que queremos hacer proyectos.
Saludos
Jose
Hola Arturo,
Por favor necesito me ayudes con algo, tengo mas o menos diseñado un sitio, al conectarme al mismo desde otro PC en red se me habre el sitio con las formas donde ingreso los datos para generar el grafico ya los recibe los pasa al grafico pero en esa PC en red no se genera el grafico, en la mia que es como el server si se genera el grafico,,?
Es necesario copiar alguna archivo o instalar algo en los clientes..?
Hola Arturo!!!
Yo esto empezando a utilizar el open flash chart 2 con PHP, he seguido varios manuales (incluyendo el tuyo), pero sigo con el mismo problema me marca un error diciendo Fatal error: Class ‘graph’ not found… entiendo que significa que no encuentra esa clase… nose donde debe declararse o de donde la toma, mejor dicho, de donde la debe de tomar.
Nose si este error sea una simplonada que no estoy viendo pero ya pase varios dias con este error y no encuentro la solucion. Agradeceria mucho que me orientaras, nose, talvez ya le a pasado esto a alguien y me encantaria que me dijeran cual es la razon y como solicionarlo claro…
De antemano Agradesco su atencion y quedo en espera de tu respuesta…
@Jose: Gracias por la recomendación, voy a tratar de hacer lo que dices, el problema es que no puedo subir archivos al servidor de wordpress, si alguien tiene alguna cuenta en mediafire o rapidshare, le agradecería que subiera los archivos y me enviara los enlaces para ponerlos en el post.
@Frank: No es necesario tener nada instalado en el cliente, salvo el plugin de flashplayer.
@Beto: Debes tener algún problema con la librería, de recomiendo que la descargues nuevamente, y que hagas bien el llamado a la inclusión, con la ruta correcta. Ya respondí un comentario sobre eso.
Saludos a todos.
Arturo,
Gracias por tu ayuda, te molesto otra vez pero ya instale adobe flash player en el otro PC (cliente) y se inicia el proceso de grafico que son esos circulos girando pero al final solo se muestra el dentro del recuadro la ruta “http://server/estadisticas/Semanal.php?var1=’.$f1.’&var2=’.$f2,false,”ofc/” de lo que se puede leer..
Gracias por tu valiosa ayuda.
Hola amigos estoy perdido con Open Flash Chart. El caso es que se como funciona pero mi problema es el siguiente; los datos se recogen en unos archivos con extension .grc por ejemplo uno que da los parametros de velocidad del viento seria este.
&x_labels=16:28,16:28,16:29,16:30,16:31,16:32,16:33,16:33,16:34,16:35,16:36,16:37,16:38,16:38,16:39,16:40,16:41,16:42,16:43,16:44,16:45,16:46,16:47,16:48,16:48,16:49,16:50,16:51,16:52,16:53,16:53,16:54,16:55,16:56,16:57,16:58,16:59,17:0,17:1,17:2,17:03,17:3,17:4,17:5,17:6,17:7,17:8,17:9,17:10,17:11,17:12,17:13,17:14,17:15,17:16,17:17,17:18,17:19,17:20,17:21,17:22,17:23,17:23,17:24,17:25,17:26,17:27,17:28,17:29,17:30,17:31,17:32,17:33,17:33,17:34,17:35,17:36,17:37,17:38,17:39,17:40,17:41,17:42,17:43,17:44,17:45,17:46,17:47,17:48,17:49,17:50,17:51,17:52,17:53,17:54,17:55,17:56,17:57,17:58,17:59,18:0,18:1,18:2,18:3,18:4,18:5,18:6,18:7,18:8,18:9,18:10,18:11,18:12,18:13,18:14,18:15,18:16,18:17,18:18,18:19,18:20,18:21,18:22,18:23,18:24,18:25,18:26,18:27,18:28,18:29,18:30,18:31,18:32,18:33,18:34,18:35,18:36,18:37,18:38,18:39,18:40,18:41,18:42,18:43,18:44,18:45,18:46,18:47,18:47,18:48,18:49,18:50,18:51,18:52,18:53,18:54,18:55,18:56,18:57,18:58,18:59,19:0,19:1,19:2,19:3,19:4,19:5,19:6,19:07&
&values=6.64,null,null,null,null,null,8.45,null,null,null,null,null,3.62,null,null,null,null,null,null,null,null,null,null,4.23,null,null,null,null,null,6.64,null,null,null,null,null,4.83,null,null,null,null,9.05,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2.42,null,null,null,null,null,null,null,null,null,null,9.65,null,null,null,null,null,7.24,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5.43,null,null,null,null,null,6.64,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6.03&
&y_min=0&
&y_max=20.57&
&title=Velocidad (3 horas),{color: #7E97A6; font-size: 12; margin: 15px 5px; text-align: center}&
&x_label_style=10,0×164166,2,20&
&x_axis_steps=1&
&y_legend=ºC,12,0×164166&
&y_label_style=10,0×164166&
&y_ticks=5,10,10&
&area_hollow=2,3,50,0×164166,Km/h,12,0xfeffc3&
&bg_colour=#FFFFFF&
&x_axis_colour=#164166&
&x_grid_colour=#cedcea&
&y_axis_colour=#164166&
&y_grid_colour=#cedcea&
&_inner_background=#FF0000&
&y_legend={
“text”: “Max Users”,
“style”: “{color: #164166; font-size: 20;}”
}&
&y_axis={
“stroke”:14,
“tick_length”:30,
“colour”:”#d09090″,
“grid_colour”:”#00ff00″,
“offset”:1
}
¿como hago para que Open Flash Chart interprete este tipo de archivo de datos?
Un saludo
Hola Arturo, ya he conseguido que me lea los archivos .grc donde estan los datos el problemilla lo tenia en otro lado. Quiero hacer que Open flash chart funcione en mi servidor pero los datos los voy a optener de otra web, ¿como llamo los archivos para que me los lea?
Este es mi codigo en mi servidor local
Sin embargo yo quiero leer el archivo viento.grc desde aquí: http://www.vuelolibreandalucia.es/meteo/loja/velocidad.grc
gracias
Un saludo
Antonio
Hola Antonio, solo tendrias que modificar la linea donde haces el llamado a la funcion de inclusion del grafico:
include_once 'ofc-library/open_flash_chart_object.php';open_flash_chart_object( 500, 250, 'http://www.vuelolibreandalucia.es/meteo/loja/velocidad.grc', false );
Un Saludo.
Hola Arturo, gracias por tu respuesta, ya habia probado esa opción pero no me muestra la gráfica, me muestra la dirección web metida en un recuadro. ¿Como puedo solucionarlo? En local si copio los datos en mi direcorio raiz funciona correctamente pero no si los llamo como tu me cometas.
Intenta hacer tu la llamada a la dirección que te remito ver si te genera la grafica.
‘http://www.vuelolibreandalucia.es/meteo/loja/velocidad.grc
Un saludo
Antonio
Hola Arturo no logro que me muestre la grafica poniendo la url donde estan los datos, ¿como puedo hacerlo? ¿que estoy haciendo mal? podria hacer de alguna forma que se bajara a mi servidor el archivo de datos para luego leerlo desde ese sin problema. Gracias
Un saludo
Antonio
Arturo,
Gracias por tu ayuda, te molesto otra vez pero ya instale adobe flash player en el otro PC (cliente) y se inicia el proceso de grafico que son esos circulos girando pero al final solo se muestra el dentro del recuadro la ruta “http://server/estadisticas/Semanal.php?var1=’.$f1.’&var2=’.$f2,false,”ofc/” de lo que se puede leer..
Gracias por tu valiosa ayuda.
Hola arturo, acabo de descargar open-flash-chart-2-Jormungandr-2 version 1.9.6 pero no me funciona el ejemplo que tienes arriba.
En el primer archivo grafico.php presento un error por lo tanto lo modifiqué asi:
include_once ‘ofc-library/open_flash_chart_object.php’;
por
include_once ‘ofc-library/open-flash-chart-object.php’;
LA PAGINA YA NO MUESTRA ERROR PERO ME SALE EN BLANCO
GRACIAS POR LO QUE ME PUEDAS AYUDAR
Hola a todos, hay una nueva versión de Open-Flash-Chart que ha reemplazado la anterior, en esta nueva version, el archivo de datos es en formato JSON, por lo tanto el ejemplo que aquí planteo no va a funcionar.
Dejo acontinuación el link, donde podran ver los nuevos tutoriales para esta version 2.
http://teethgrinder.co.uk/open-flash-chart-2/tutorial.php
Saludos.
hola, necesito una ayuda, como puedo crear una grafica en php
Hola ArturoWeb.
Pregunta: ¿ Como colocar el fondo de la grafica transparente?
En tu ejemplo del inicio, al área en color amarillo, deseo que aparezca transparente.
Ojala y puedas ayudarme.
Gracias de antemano y saludos .
Hola Arturo, pq a mi me sale el siguiente error, qué no estoy haciendo bien?
Warning: main(ofc-library/open_flash_chart_object.php) [function.main]: failed to open stream: No such file or directory in /nfs/c01/h02/mnt/35318/domains/www.vinculacionnuevaalianza.org.mx/html/chart.php on line 10
Warning: main() [function.include]: Failed opening ‘ofc-library/open_flash_chart_object.php’ for inclusion (include_path=’.:/usr/local/php-4.4.8-1/share/pear’) in /nfs/c01/h02/mnt/35318/domains/www.vinculacionnuevaalianza.org.mx/html/chart.php on line 10
Fatal error: Call to undefined function: open_flash_chart_object() in /nfs/c01/h02/mnt/35318/domains/www.vinculacionnuevaalianza.org.mx/html/chart.php on line 11
Que tal Joseph .
De acuerdo a mi experiencia con OFC, el problema es con tus rutas . Vaya, no encuentra la clase “open_flash_chart_object.php” en la ruta que especificaste.
Intenta con rutas relativas, anteponiendo “./” ó “../” al resto de la ruta . Me parece que más arriba hay usuarios con el mismo problema.
Saludos.
Gracias por tu respuesta Arturo, también habia descargado la versión 2, y ya siguiendo los ejemplos de los tutoriales todo resulto bien, ahora necesito tu ayuda para poder gráficar los datos de la fila de una tabla MySQL, por ejemplo, tengo los campos: PAN, PRI, PRD, PVEM, PT, PANAL, PC, PA, con datos númericos. ¿Cúal sería la consulta SQL?, la tabla se llama “encsal” y digamos que la fila es el id=1. Ojala puedas ayudarme, Gracias.
Hola Arturo espero puedas ayudarme con esto, estoy tratando de guardar la imagen de un grafico generado con open flash chart-2, he seguio el tutorial al pie de la letra, pero no me funciona. algun consejo para exportar imagenes png o jpg???
@Joseph: Aca hay cuatro tutoriales (en ingles) donde explican como generar graficos con open-flash-chart tomando los datos de una BD.
http://teethgrinder.co.uk/open-flash-chart-2/tutorial-db-menu.php
@Marisnel: No he hecho eso de exportar los graficos como imagenes, pero en la pagina del proyecto (http://teethgrinder.co.uk/open-flash-chart-2/save-as-image-menu.php) explican varias formas de hacerlo (en ingles).
Un saludos a tod@s.
Hola Arturo, tengo un problema y que no consigo avanzar
Open Flash Chart
IO ERROR
Loading test data
ERROR #2032
This is the URL tried to open ../../data-files/candle.txt
1º Yo no tengo en ningun sitio el candle.txt y tampoco veo en ningun sitio donde intente llamar a esa ruta.
2º En el Archivo de datos he encontrado un include que en mi php5-ofc-library no viene.
include_once( ‘ofc-library/open-flash-chart.php’ );
en mi php5-ofc-library viene
lib
Example
package.xml
open-flash-chart-object.php
build_package.php
Estoy deseperado. A ver si me puedes ayudar. Muchas Gracias de antemano