Foros del Web » Programando para Internet » PHP »

Gráficos php + Mysql de "visitas"

Estas en el tema de Gráficos php + Mysql de "visitas" en el foro de PHP en Foros del Web. Hola amigos! Me rompí la cabeza pensando como puedo hacer esto, y sinceramente me fui sangrando por hay porque no se me ocurrió nada útil ...
  #1 (permalink)  
Antiguo 20/02/2012, 22:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años
Puntos: 1
Gráficos php + Mysql de "visitas"

Hola amigos!

Me rompí la cabeza pensando como puedo hacer esto, y sinceramente me fui sangrando por hay porque no se me ocurrió nada útil (si, tal vez el hecho de que sean la 1:10 afecte )

Tengo el siguiente script

Código PHP:

<?php
//MYSQL CONNECTION
$connect mysql_connect("IP""USER""PASS") or die ("No conecta con SQLSERVER");
mysql_select_db('DB',$connect);

//OBTENER USUARIOS ONLINE
$sql "SELECT COUNT(*) FROM users WHERE online = '1'"
$query mysql_query($sql) or die(mysql_error());
$count mysql_result($query,0,0); 

//FECHA
$dma date("d-m-Y");
$hora 5+date(H);
$minuto date(i);
$segundos date(s);
$hms $hora.":".$minuto.":".$segundos;
$fecha $dma $hms;
mysql_query("INSERT INTO online_stats (id, uonline, dma, hms) VALUES (NULL, '".$count."' , '".$dma."' , '".$hms."')") or die(mysql_error());
Explicación del código

Este el el cronjob, se ejecuta cada 10 minutos y lo que hace básicamente es contar los usuarios OnLine y los guarda en la tabla con la siguiente estructura

1 | id | int(11) | AUTO_INCREMENT <-ID para organizarme
2 | uonline | int(11) |Ninguna <-Cantidad de Onlines
3 | dma | varchar(15) | Ninguna <-Dia Mes Año
4 | hms | varchar(15) | Ninguna <- Hora Minutos Segundos

Hasta acá todo perfecto. El tema es que ahora quiero hacer un gráfico usando [URL="http://jpgraph.net"]jpgraph[/URL] (una libreria php para hacer graficos)

Esto también es bastante fácil, ya que viene casi todo hecho.

Mi problema


El objetivo de implementar esto es ver los puntos débiles de usuarios conectados así como las horas mas fuertes. Y a su vez ver el crecimiento (o decadencia) de usuarios a travez del tiempo

Por lo que necesito adaptar el script original de jpgraph a 3 nuevos script (que podría ser uno solo pero modificado por GETS.

Script original

Código PHP:
<?

//MYSQL CONNECTION
$connect mysql_connect("IP""USER""PASS") or die ("No conecta con SQLSERVER");
mysql_select_db('DB',$connect);

// content="text/plain; charset=utf-8"
require_once ('jpgraph/src/jpgraph.php');
require_once (
'jpgraph/src/jpgraph_line.php');

$datay1 = array(20,15,23,15); // Aqui tiene que ir la cantidad de usuarios

// Setup the graph
$graph = new Graph(1000,300);
$graph->SetScale("textlin");

$theme_class=new UniversalTheme;

$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$graph->title->Set('Usuarios Onlines Periodo ');
$graph->SetBox(false);

$graph->img->SetAntiAliasing();

$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);

$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels(array('A','B','C','D')); // Aqui el dia las horas o las semanas
$graph->xgrid->SetColor('#E3E3E3');

// Create the first line
$p1 = new LinePlot($datay1);
$graph->Add($p1);
$p1->SetColor("#6495ED");
$p1->SetLegend('Line 1');

$graph->legend->SetFrameWeight(1);

// Output line
$graph->Stroke();

?>
Está claro que un WHILE me serviría de mucho, ya que pido los datos y luego los imprimo en una variable .

Ej - Pido gráficos del día de hoy entre las 17:50 y las 19:00 en caso de que tena estos registros en php:

usuarios | hora
255 -> 17:50:00
200 -> 18:00:00
210 -> 18:10:00
190 -> 18:20:00
199 -> 18:30:00
222 -> 18:40:00
269 -> 18:50:00
300 -> 19:00:00

Con el while puedo sacar variable X e Y

Código PHP:
$y 255,200,210,190,199,222,269,300
$x 
17:50:00,18:00:00,18:10:00,18:20:00 .... 

y luego en


Código PHP:
$datay1 = array($y); // Aqui tiene que ir la cantidad de usuarios 
lo mismo con la x. El tema de las horas es facil...

Ahora mi problema es cuando quiero hacer la de los días. Por día tengo 144 resultados... si yo quiero graficár el avance diario como puedo hacer la consulta y luego el while teniendo en cuenta que si quier graficar un periodo de 15 dias no puedo tener en el eje x 2160 valores (144 por dia X 15 dias = 2160) ya que no se llegaría a ver en que día hubo bajas y cual hubo caídas.

Sinceramente agradezco a todos su ayuda desde ya.
Y pido a la gente que sabe que disculpe mi incompetencia, ya que solo tengo 16 años y me apasiona.
Espero que se entienda lo que me sucede y alguien pueda tirarme un salvavidas :D

Saludos!

PD - Aquí hay una vista previa del código


Última edición por HyQnet; 20/02/2012 a las 22:39 Razón: Agregamos muestra de codigo.
  #2 (permalink)  
Antiguo 23/02/2012, 04:02
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Gráficos php + Mysql de "visitas"

Si no quieres mostrar todos los datos porque son demasiados tendrás que agrupar de alguna manera. No sé que respuesta esperas, este problema depende de la lógica de tu aplicacioń, no es un problema PHP.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: graficos, mysql
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 11:56.