CiberPC

Regresar   CiberPC » Programación » PHP

Bienvenido a los foros de CiberPC. Actualmente estas viendo el foro como invitado, lo que te da acceso limitado al visitar nuestras discusiones y otras funcionalidades. Al unirte de forma gratuita a nuestra comunidad tendras acceso a:
  • Publicar nuevos temas
  • Comunicarte en privado con otros miembros
  • Responder a encuestas
  • Subir archivos adjuntos
  • y muchas cosas mas!
El registro es rápido, simple y absolutamente gratuito, asi que no pierdas tiempo y únete a nuestra comunidad ahora mismo! Si tienes algun problema con el proceso de registro o el ingreso a tu cuenta, no dudes en contactarnos.

Responder
 
LinkBack (1) Herramientas Estilo
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 17-abr-2007, 12:09
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Question graficas dinamicas con php/swf chart

hola a todos tengo un proyecto y requiero mostrar informacion que tengo almacenada en bases de datos para realizar analisis comparativos de las mismas. encontre el php/swf chart para realizar este tipo de graficas pero no he logrado hacerlo funcionar alguien sabe como se hace. mi servidor el windows y las bases de datos estan en mysql.
el grafico que me genera tiene el grafico de jemplo y al lado los nuevos datos el script que estoy usando es el siguiente

<HTML>
<BODY bgcolor="#FFFFFF">
<?php
//include charts.php to access the InsertChart function
include "charts.php";
echo InsertChart ( "charts.swf", "charts_library", "sample.php", 400, 250 );
//start the PHP multi-dimensional array and create the region titles
$chart [ 'chart_data' ][ 0 ][ 0 ] = "";
$chart [ 'chart_data' ][ 1 ][ 0 ] = "REGION A";
$chart [ 'chart_data' ][ 2 ][ 0 ] = "REGION B";
$chart [ 'chart_data' ][ 3 ][ 0 ] = "REGION C";
//connect to the database
mysql_connect ( "localhost", "root", "" );
mysql_select_db ( "Accounting" );
//get the smallest year to determine which year to start the chart with
$result = mysql_query ( "SELECT MIN(Year) AS MinYear FROM Growth" );
$MinYear = mysql_result ( $result, 0, "MinYear" );
//get all the data in the Growth table
$result = mysql_query ("SELECT * FROM Growth");
//extract the data from the query result one row at a time
for ( $i=0; $i < mysql_num_rows($result); $i++ ) {
//determine which row in the PHP array the current data belongs to
switch ( mysql_result ( $result, $i, "Region" ) ) {
case "Region A":
$row = 1;
break;
case "Region B":
$row = 2;
break;
case "Region C":
$row = 3;
break;
}
//determine which column in the PHP array the current data belongs to
$col = mysql_result ( $result, $i, "Year") - $MinYear + 1;
//populate the PHP array with the Year title
$chart [ 'chart_data' ][ 0 ][ $col ] = mysql_result ( $result, $i, "Year");
//populate the PHP array with the revenue data
$chart [ 'chart_data' ][ $row ][ $col ] = mysql_result ( $result, $i, "Revenue");
}
//send the new data to charts.swf
SendChartData ( $chart );

?>

es el mismo grafico de ejemplo que hay en la pagina pero no logro hacerlo funcionar.

si alguien sabe como se usa este soft o que es loq ue estoy haciendo mal agradeceria la ayuda ya que es urgente que termine este proyecto

gracias

emerson
Citar y responder
  #2 (permalink)  
Old 17-abr-2007, 15:11
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

Bienvenido Emerson, ahi te va una explicada express de como usar PHP/SWF, espero que esto te lo aclare un poco

Necesitas un archivo que construya los datos que usaras en el grafico, le llamaremos datos.php

Código PHP:
<?php

include 'charts.php';

/*
* Aqui van los datos con los que construimos el grafico 
* el primer arreglo indica los rangos
* los siguientes arreglos indican los datos y sus valores
* el primer valor de los datos, indica el nombre de la columna
*/
$chart 'chart_data' ] = array ( array ( """2004""2006""2006""2007" ),
                                  array ( 
"Ordenadores"5103063 ),
                                  array ( 
"Lavadoras"100206555 ),
                                  array ( 
"Refrigeradores"5621590 )
                                );

/* al terminar de construir tus arreglos, imprimelos */
SendChartData $chart );

?>
Despues creas otro archivo, el cual va a tomar esa informacion que acabas de generar y la va a mostrar en el navegador:

Código PHP:
<?php

include "charts.php";

/*
* aqui le dices que inserte un objeto de flash y que obtenga los datos del archivo datos.php
* los ultimos numeros indican ancho y altura del objeto
*/
echo InsertChart "charts.swf""charts_library""datos.php"500150 );

?>
Esto te generara un grafico sencillo (adjunto una muestra), pero basandote en esto te puedes dar una idea de como tienes que llenar los datos, ya que lo estas tratando de mostrar al usuario antes de contruir la informacion.

Una vez que le agarres sentido, el grado de personalizacion solo esta limitado por ti, puedes ver todo lo que le puedes modificar o agregar en la referencia.

Saludos
Imágenes adjuntas
Tipo de archivo: jpg swfphp.jpg (9.6 KB, 16 vistas)
__________________
mi blog | mi twitter
Citar y responder
  #3 (permalink)  
Old 18-abr-2007, 09:43
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

hola pablasso
muchisimas gracias por tu ayuda. gracias a ella ya pude generar los graficos estaticos de mi proyecto... pero ..... con los graficos dinamicos tengo un problema, ya que tome el ejemplo del tutorial pero la grafica no me muestra los datos reales de la base de datos, comparando los datos de los archivos estaticos con el dinamico, los datos no estan en orde me aperecen de esta manera:
LINE 2001 2002 2003 2004 2005 REGION A REGION B REGION C 56 21 5 90 100

y pues obviamente lo que me grafica es la linea 56

el escript que estoy usando es el siguiente:

<?php
//include charts.php to access the InsertChart function
include "charts.php";
//change the chart to a bar chart
$chart [ 'chart_type' ] = "LINE";
//start the PHP multi-dimensional array and create the region titles
$chart [ 'chart_data' ][ 0 ][ 0 ] = "";
$chart [ 'chart_data' ][ 1 ][ 0 ] = "REGION A";
$chart [ 'chart_data' ][ 2 ][ 0 ] = "REGION B";
$chart [ 'chart_data' ][ 3 ][ 0 ] = "REGION C";
//connect to the database
mysql_connect ( "localhost", "root", "" );
mysql_select_db ( "Accounting" );
//get the smallest year to determine which year to start the chart with
$result = mysql_query ( "SELECT MIN(Year) AS MinYear FROM Growth" );
$MinYear = mysql_result ( $result, 0, "MinYear" );
//get all the data in the Growth table
$result = mysql_query ("SELECT * FROM Growth");
//extract the data from the query result one row at a time
for ( $i=0; $i < mysql_num_rows($result); $i++ ) {
//determine which row in the PHP array the current data belongs to
switch ( mysql_result ( $result, $i, "region" ) ) {
case "Region A":
$row = 1;
break;
case "Region B":
$row = 2;
break;
case "Region C":
$row = 3;
break;
}
//determine which column in the PHP array the current data belongs to
$col = mysql_result ( $result, $i, "year") - $MinYear + 1;
//populate the PHP array with the Year title
$chart [ 'chart_data' ][ 0 ][ $col ] = mysql_result ( $result, $i, "year");
//populate the PHP array with the revenue data
$chart [ 'chart_data' ][ $row ][ $col ] = mysql_result ( $result, $i, "revenue");
}
//send the new data to charts.swf
SendChartData ( $chart );
?>

muchisimas gracias por tu ayuda
emerson
Citar y responder
  #4 (permalink)  
Old 18-abr-2007, 14:57
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

Me es algo dificil decirte sin tener la base de datos (checa muy bien que estes recibiendo los datos con simples echo, mysql_result siempre puede ser algo confuso), pero te podria servir ver el mismo ejemplo anterior acomodado en la forma en lo que lo estas haciendo:

Código PHP:
$chart['chart_data'][0][0] = '';
$chart['chart_data'][1][0] = 'Ordenadores';
$chart['chart_data'][2][0] = 'Lavadoras';
$chart['chart_data'][3][0] = 'Refrigeradores';

$chart['chart_data'][0][1] = '2004';
$chart['chart_data'][1][1] = '5';
$chart['chart_data'][2][1] = '100';
$chart['chart_data'][3][1] = '56';

$chart['chart_data'][0][2] = '2005';
$chart['chart_data'][1][2] = '10';
$chart['chart_data'][2][2] = '20';
$chart['chart_data'][3][2] = '21';

$chart['chart_data'][0][3] = '2006';
$chart['chart_data'][1][3] = '30';
$chart['chart_data'][2][3] = '65';
$chart['chart_data'][3][3] = '90';

$chart['chart_data'][0][4] = '2007';
$chart['chart_data'][1][4] = '63';
$chart['chart_data'][2][4] = '55';
$chart['chart_data'][3][4] = '90'
Si tus datos los estas sacando bien de la BD, lo unico que hay que hacer, es entender en que columna y fila insertas cada uno de ellos.
__________________
mi blog | mi twitter
Citar y responder
  #5 (permalink)  
Old 19-abr-2007, 13:46
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

Gracias Pablasso Pude Generar Correctamente El Grafico Dinamico
Citar y responder
  #6 (permalink)  
Old 19-abr-2007, 14:23
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

me alegro emerson!
__________________
mi blog | mi twitter
Citar y responder
  #7 (permalink)  
Old 07-may-2007, 14:26
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

hola pablasso.... otraves
Citar y responder
  #8 (permalink)  
Old 07-may-2007, 14:31
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

hola pablasso.... otraves con problemas con los graficos dinamicos, lo que pasa es que estoy generando un grafico de lineas que compara tres años 2005, 2007 y 2007 durante los meses del año el problema esta en que en el año 2005 los datos inicial en agosto pero los grafica como si fuera enero la verdad no se como hacer para que el grafico grafique el dato en agosto y no en enero.... estoy usando el mismo codigo que pegue incialmente
gracias por tu ayuda
Citar y responder
  #9 (permalink)  
Old 07-may-2007, 15:42
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

esta dificil sin ver el codigo que usas ahora.. puedes pegarlo aqui?

asegurate de ponerlo entre las etiquetas [php ] [ /php] sin espacios las etiquetas..
__________________
mi blog | mi twitter
Citar y responder
  #10 (permalink)  
Old 07-may-2007, 16:04
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

este es el codigo que estoy usando.
archivo 1 el que obtiene los datos
Código PHP:
//include charts.php to access the InsertChart function
include "charts.php";
//change the chart to a bar chart
$chart 'chart_type' ] = "LINE";
//start the PHP multi-dimensional array and create the region titles
$chart 'chart_data' ][ ][ ] = "";
$chart 'chart_data' ][ ][ ] = "2005";
$chart 'chart_data' ][ ][ ] = "2006";
$chart 'chart_data' ][ ][ ] = "2007";
//connect to the database
mysql_connect "localhost""root""" );
mysql_select_db "oportunidad" );
//get the smallest year to determine which year to start the chart with
$result mysql_query "SELECT MIN(DIA) AS MinDIA FROM MOVIMIENTO" );
$MinMES mysql_result $result0"MinDIA" );
//get all the data in the Growth table
$result mysql_query ("SELECT *
FROM MOVIMIENTO
WHERE AREA ='ODONTOLOGIA GENERAL' AND MES ='1'AND SEDE='TUNJA'
ORDER BY DIA ASC"
);
//extract the data from the query result one row at a time
for ( $i=0$i mysql_num_rows($result); $i++ ) {
   
//determine which row in the PHP array the current data belongs to
   
switch ( mysql_result $result$i"AÑO" ) ) {
      case 
"2005":
      
$row 1;
      break;
      case 
"2006":
      
$row 2;
      break;
      case 
"2007":
      
$row 3;
      break;
 
     }
   
//determine which column in the PHP array the current data belongs to
   
$col mysql_result $result$i"DIA") - $MinDIA 1;
   
//populate the PHP array with the Year title
   
$chart 'chart_data' ][ ][ $col ] = mysql_result $result$i"DIA");
   
//populate the PHP array with the revenue data
   
$chart 'chart_data' ][ $row ][ $col ] = mysql_result $result$i"OPORTUNIDAD");
}
//send the new data to charts.swf
SendChartData $chart );
?> 
archivo dos el que realiza la grafica
Código PHP:
<?php
include "charts.php";
 
/*
* aqui le dices que inserte un objeto de flash y que obtenga los datos del archivo datos.php
* los ultimos numeros indican ancho y altura del objeto
*/
echo InsertChart "charts.swf""/GRAFICOS/charts_library""oport_od_2_t.php"800300"A8C4F2"false );
 
 
?>
y los datos de la tabla son los siguientes
Código PHP:
seg_ing SEDE AREA AÑO MES DIA OPORTUNIDAD
------- ------ ------------------- ------ ------ ------ -----------
(
NULLTUNJA ODONTOLOGIA GENERAL 2006 1 2 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 2 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 3 72
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 3 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 3 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 4 72
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 4 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 4 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 5 72
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 5 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 5 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 6 72
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 6 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 6 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 7 72
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 7 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 8 72
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 8 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 9 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 10 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 10 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 11 36
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 11 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 11 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 12 36
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 12 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 12 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 13 36
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 13 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 13 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 14 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 15 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 15 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 16 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 16 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 17 48
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 17 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 17 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 18 48
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 18 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 18 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 19 48
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 19 36
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 20 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 20 48
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 20 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 21 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 22 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 22 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 23 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 23 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 24 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 24 36
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 25 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 25 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 26 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 26 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 27 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 27 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 27 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 28 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 29 24
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 29 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 30 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 30 24
(NULLTUNJA ODONTOLOGIA GENERAL 2005 1 31 24
(NULLTUNJA ODONTOLOGIA GENERAL 2006 1 31 36
(NULLTUNJA ODONTOLOGIA GENERAL 2007 1 31 24 
Citar y responder
  #11 (permalink)  
Old 07-may-2007, 16:39
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

en tu consulta SQL estas poniendo una condicion para que todos tus datos sean de enero nada mas
__________________
mi blog | mi twitter
Citar y responder
  #12 (permalink)  
Old 08-may-2007, 11:02
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

si claro, porque lo que quiero mostrar en la grafica es la evolucin del dato de manera diaria, lo que pasa es que por ejemplo el dia 12 no tiene dato en el año 2005 pero en el 2006 si lo que esta haciendo el grafico es que muestra el dato del 13 del 2005 en el del 12 del 2005 osea no deja el espacio en blanco de ese dia sino que corre el dato siguiente... lo cual se ve en la grafica que tendria que graficar del dia 2 a 31 de enero pero grafica una linea continua hasta el dia 24 que son la cantidad de datos que tiene de ese mes... no se si me hice entender???... de todas maneras te agrdezco mucho tu ayuda
Citar y responder
  #13 (permalink)  
Old 08-may-2007, 16:09
Avatar de Sagi
Sagi Sagi está offline
Super Moderador
 
Registrado: noviembre-2002
Posts: 24,400
Sagi va por buen camino
Predeterminado

¿Estás haciendo un sitio para algún odontólogo, o para un depósito dental?

__________________
Dirige tu mirada hacia Haití.... y tu mano hacia tu billetera.
Citar y responder
  #14 (permalink)  
Old 08-may-2007, 17:09
Avatar de pablasso
pablasso pablasso está offline
Administrador
 
Registrado: noviembre-2002
Ubicación: Guadalajara, México
Posts: 22,319
pablasso va por buen camino
Predeterminado

mmm ya entiendo tu problema, lo que deberias de hacer es rotar sobre los dias del mes, no sobre los datos.

por ej. si es para mayo, rota sobre 31 y vas insertando en el arreglo de la grafica los datos que van coincidiendo con el dia actual, si en lugar de eso rotas sobre los datos nada mas no vas a poder tener control del tiempo
__________________
mi blog | mi twitter
Citar y responder
  #15 (permalink)  
Old 09-may-2007, 11:01
emerson emerson está offline
 
Registrado: abril-2007
Posts: 51
emerson va por buen camino
Predeterminado

sagi
es un aplicativo de una empresa de servicios de salud
Citar y responder
Responder


LinkBacks (?)
LinkBack to this Thread: http://www.ciberpc.com/foros/f22/graficas-dinamicas-con-php-swf-chart-9048.html
Publicado por For Type Fecha
pablasso.com » Blog Archive » Creando graficas con Flash y PHP This thread Pingback 20-abr-2007 12:25

Personas en esta discusión: 1 (0 usuario(s) y 1 invitado(s))
 
Herramientas
Estilo

Reglas del foro
not puedes iniciar una discusión
not puedes responder a una discusión
not puedes agregar archivos adjuntos
not puedes editar tus posts

El código vB está activado
Emotíconos está activado
El código [IMG] está activado
El código HTML está desactivado
Trackbacks are activado
Pingbacks are activado
Refbacks are activado


Patrocinadores:



Backlinks:


Todas las horas son GMT -6. La hora es 22:44.

Usando: vBulletin Version 3.6.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0
Derechos Reservados ©2002 - 2006, CiberPC.
vBulletin Style By: SixteenOhNine