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
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
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());
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.
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();
?>
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
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