Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2011, 12:20
dperniam
 
Fecha de Ingreso: septiembre-2011
Ubicación: Maturin
Mensajes: 13
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema con graficos en tiempo real

Buenas Tardes Amigos:
Estoy intentando crear un gráfico con valores en tiempo real tomados de una Base de datos. El script que estoy usando es de una libreria creada por Emprise Javascript Charts.

Al cargar la primera vez, el grafico muestra el valor real de la base de datos, sin embargo, no se actualiza cada vez que se recarga la funcion "updateSeries" y el primer valor tomado de la tabla se mantiene, aunque en la tabla cambie.
Creo que el problema esta relacionado con que PHP no se puede ejecutar dentro de javascript, previendo esto, decidi crear las etiquetas javascript como si fueran un echo de PHP, como verán en el codigo que les envio.
Alguien podria ayudarme a detectar la causa de porque no se actualiza el grafico o a encontrar una mejor manera de hacerlo?...
Muchas Gracias de Antemano
Saludos

Código PHP:
<?php
include "opendb.php";
?>

<html>

<head>
   <script type="text/javascript" src="dist/EJSChart.js"></script>
</head>

<body>
   <div id="myChart" style="width:900px; height:330px;"></div>
<?php

echo "<script type='text/javascript'>
 
   var chart = new EJSC.Chart('myChart',
      {
       show_legend: false,
      show_messages: false,
       axis_bottom: { caption: 'Timestamp', formatter: new EJSC.DateFormatter({ format_string: 'HH:NN:SS' }) },
      axis_left: { caption: 'Random Value' },
        allow_zoom: false
     }
    );
  
  var myData = new Array();
  
     // Populate array
    var x = (new Date()).getTime() - 101000;
     var y = <?php echo $pres_casing; ?>;

    for (var i = 0; i < 100; i++) {
      x += 1000;
      y = Math.floor(Math.random() * 100);
      myData.push([x, y]);
    }
    
     // Add a new line series and save a reference
    var myLineSeries = chart.addSeries(new EJSC.LineSeries(
   new EJSC.ArrayDataHandler( myData )
    ));
  
  function updateSeries() {
      
       // Remove the first element
     myData.splice(0,1);
    
     // x = current time
     x = (new Date()).getTime();
   
     // Generate another random Y value"
;

    
$query='SELECT p_casing FROM tab_pirital WHERE nombre = 'SBC_54' ORDER BY id DESC';
    
$result pg_query($query);
    while (
$row pg_fetch_assoc($result)) 
    {
            
$p_casing     =      $row['p_casing']; 
    }

echo 
"y = $p_casing
    
      // Append a new point
   myData.push([x, y]);
     
     // Give the new data to the ArrayDataHandler
    myLineSeries.getDataHandler().setArray(myData);
    
      // Reload the series
      myLineSeries.reload();
    }
   
  // Run updateSeries() every second
   window.setInterval(updateSeries, 1000);
 </script>"
;

?>
</body>

</html>