Foros del Web » Programando para Internet » PHP »

hacer un grafico con datos de BD

Estas en el tema de hacer un grafico con datos de BD en el foro de PHP en Foros del Web. Hola estoy intentando graficar las visitas de mi sitio, baje el graphs para este efecto,este es el codigo: mi consulta es como ir almacenando en ...
  #1 (permalink)  
Antiguo 24/08/2006, 16:54
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
hacer un grafico con datos de BD

Hola estoy intentando graficar las visitas de mi sitio, baje el graphs para este efecto,este es el codigo:

mi consulta es como ir almacenando en un arreglo las visitas por dia

ej:
08-10-2006 --> 3 (visitas)
08-11-2006 --> 23 (visitas)
08-12-2006 --> 12 (visitas)..etc

como hacer dicho formato si mi campo $time2 = fecha, $userstoday = n°visitas.

Código PHP:
<?php
 
include("graphs.inc.php");
 
$graph = new BAR_GRAPH("hBar"); 
 include (
"connect.php");
    
//$spacer = "<hr size='1'>";
    
$time time();
    
$today date("d-m-Y",$time);
    
$date date("mY",$time);
    
$date_today date("dmY",$time);

    echo 
"$spacer";
    if (!
$limit){
        
$limit "30";
    }
    echo 
"<table border=1 width=600 bgcolor=#DBEDFD ><tr><td width=400 bgcolor=#9FD6FD class=csslink><span class='headline'>Visitas realizadas en los últimos $limit dias:</span></td><td width=120 align=center bgcolor=#FEFBDA class=csslink>Fecha</td><td width=120 align=center bgcolor=#FEFBDA class=csslink>N°Visita</td></tr>";
    echo 
"$spacer";
    
$result mysql_query("SELECT * FROM counthits WHERE start like 'no' ORDER BY time DESC LIMIT 0,$limit");
    
$i=0;
    while (
$row mysql_fetch_array($result)){
        
$time2 date("d-m-Y",$row[time]);
        echo 
"<tr><td></td><td align=center bgcolor=#F3FA78 class=csslink><span class='time'>$time2</span></td><td align=center bgcolor=#F3FA78 class=csslink>$row[userstoday]</td></tr>";
    
$dias[$i]=$row["userstoday"];
    
$i++;
 }
//este funciona si le ingreso valores predeterminados al array. pero no asi cuando le intento ingresar los valores de la consulta...
$graph->values = array($dias[$i]); //acá quiero mostrar las visitas por dia
 
echo $graph->create(); //creo el grafico
 
?>
que hago mal??..

gracias de antemano.-
__________________
Cristian...
  #2 (permalink)  
Antiguo 25/08/2006, 09:21
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
necesito su ayuda otra vez

alguna sugerencia maestros.-
__________________
Cristian...
  #3 (permalink)  
Antiguo 25/08/2006, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por nav2003 Ver Mensaje
alguna sugerencia maestros.-
Si dices "me bajé el ...." .. debes indicar el URL a su web oficial para que alguien pueda leerse la documentación de la misma y tal vez hacer algún aporte.

Así se verá si estás aplicando correctamente lo que su manual de uso indique u otro tipo de problemas.

No sé como tiene que quedar tu array o como lo solicita esa classe que bajastes .. pero según comentas .. "podría" ser:

En lugar de:
$dias[$i]=$row["userstoday"];

usar:
$dias[$time2]=$row["userstoday"];

Así creas un array asociativo ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 25/08/2006, 12:23
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
correcto

gracias cluster..no recuerdo de donde descargue el graph, voy a ver mi historial, gracias y tendré mas cuidado la proxima vez..
__________________
Cristian...
  #5 (permalink)  
Antiguo 25/08/2006, 12:42
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
este es el link http://php.astalaweb.net/Gr%C3%A1fic...C3%A1ficas.asp
__________________
Cristian...
  #6 (permalink)  
Antiguo 25/08/2006, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por nav2003 Ver Mensaje
Mejor deja los links hacia las web's oficiales .. ahí se puede ver manuales/tutoriales y otros comentarios del autor .. incluso contactarlo por si hay algún problema.

http://www.gerd-tentler.de/tools/phpgraphs/

Por cierto tiene una excelente documentación .. yo no me la he leido .. pero deberías hacerlo tú .. Tiene tambien bastantes ejemplos ...

Otro detalle .. Ese sistema genera el "gráfico" .. NO debes mezlcarlo con más "HTML" .. es decir, debes tener un script tipo:

genera_grafica.php con el código de esa classe, uso de sus métodos y código PHP/Mysql que llama a tus datos de tu BBDD ..

Luego por otro lado llamas a tu "genera_grafica.php" desde un tag de imagen HTML común en otro script o página con todo el HTML/CSS etc que necesites:

<img src="genera_imagen.php">

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 25/08/2006, 13:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Cluster Ver Mensaje
Si dices "me bajé el ...." .. debes indicar el URL a su web oficial para que alguien pueda leerse la documentación de la misma y tal vez hacer algún aporte.

Así se verá si estás aplicando correctamente lo que su manual de uso indique u otro tipo de problemas.

No sé como tiene que quedar tu array o como lo solicita esa classe que bajastes .. pero según comentas .. "podría" ser:

En lugar de:
$dias[$i]=$row["userstoday"];

usar:
$dias[$time2]=$row["userstoday"];

Así creas un array asociativo ...

Un saludo,
Volviendo a tu problema inicial y -leyendo un poco- la documentación de esa classe se observa por ejemplo que tiene un par de parámetros donde le pasarás un array o valores separados por comas para definir tus valores de los datos y sus etiquetas:

$graph->values = "380,150,260,310,430";
$graph->labels = "Jan.,Feb.,Mar.,Apr.,May";

Así que .. en tu bucle while() donde obtienes tus resultados de tu consulta a tu BBDD .. tienes que generar un par de arrays:

Código PHP:
$usuarios[$i]=$row["userstoday"]; 
$dias[$i]=$time2
para que luego se lo puedas pasar a los parámetros:

Código PHP:
$graph->values $usuarios ;
$graph->labels $dias
Y sobre todo -quita- todo ese HTML que tenga ese script y llamalo como te comenté.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 25/08/2006, 14:55
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
gracias, ya me habia salido con un parametro..ahora probare el $dias[$i]=$time2;

gracias de todos modos ..como siempre aprendiendo de los mejores..!!
__________________
Cristian...
  #9 (permalink)  
Antiguo 25/08/2006, 15:02
 
Fecha de Ingreso: enero-2003
Ubicación: Santiago
Mensajes: 301
Antigüedad: 14 años, 10 meses
Puntos: 1
en definitiva me quedo como sigue (el codigo html es para mostrar la informacion en tablas)..perfecto..gracias cluster.

Código PHP:
<?php
 
include("graphs.inc.php");
 
$graph = new BAR_GRAPH("hBar"); 
 include (
"connect.php");
 
$time time();
 
$today date("d-m-Y",$time);
 
$date date("mY",$time);
 
$date_today date("dmY",$time);

 echo 
"$spacer";
 if (!
$limit){
    
$limit "30";
    }
 echo 
"<table border=1 width=600 bgcolor=#DBEDFD ><tr><td width=400 bgcolor=#9FD6FD class=csslink><span class='headline'>Visitas realizadas en los últimos $limit dias:</span></td><td width=120 align=center bgcolor=#FEFBDA class=csslink>Fecha</td><td width=120 align=center bgcolor=#FEFBDA class=csslink>N°Visita</td></tr>";
 echo 
"$spacer";
 
$result mysql_query("SELECT * FROM counthits WHERE start like 'no' ORDER BY time DESC LIMIT 0,$limit");
 
 
$i=0
    while (
$row mysql_fetch_array($result)){ 
        
$time2 date("d-m-Y",$row[time]); 
        echo 
"<tr><td></td><td align=center bgcolor=#F3FA78 class=csslink><span class='time'>$time2</span></td><td align=center bgcolor=#F3FA78 class=csslink>$row[userstoday]</td></tr>"
    
    
$dias[]=$row["userstoday"]; 
    
$fechas[]=$time2;
    
$i++; 
 } 
//este funciona si le ingreso valores predeterminados al array. pero no asi cuando le intento ingresar los valores de la consulta... 
$graph->values $dias//acá quiero mostrar las visitas por dia 
$graph->labels $fechas;
 echo 
$graph->create(); //creo el grafico 
 
?>
un saludo al maestro!!.
__________________
Cristian...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:08.