2010-07-28 10 views
0

Je suis en train de dessiner un réel graphique de temps que ma table mysql est constamment inséré avec des valeurs, comme un graphique mobile référencé à partir http://kalanir.blogspot.com/2009/11/how-to-plot-moving-graphs-using-flot.html Les valeurs proviennent en fait d'un dioxyde de carbone capteur qui met à jour la valeur de la table avec co2 valeurs avec les positions id. J'ai changé son math.random au code ci-dessous:temps réel graphique avec Flot, mysql, php

<?php $result = mysql_query("SELECT * FROM node1 ORDER BY id DESC LIMIT 1")or die(mysql_error());?> 
<?php $row = mysql_fetch_array($result);?> 

var j = "<?php echo $row['co2'];?>"; 
var next = "<?php echo $row['id'];?>"; 

for (var i = 0; i < this.xscale - 1; i++) 
{ 
    this.array[i] = [i,this.array[i+1][1]]; // (x,y) 
} 
this.array[this.xscale - 1] = [this.xscale - 1,j]; 

Cependant, quand je lance ce code, la première valeur des changements, après quoi il reste constant, même si la dernière ligne de la table est mise à jour. J'ai entendu dire que c'est parce que, en PHP, le serveur n'est interrogé qu'une seule fois. Par conséquent, je n'obtiens une lecture constante des premières données. Y a-t-il un moyen de mettre à jour le graphique à la dernière valeur de la table? avec ajax?

Merci pour votre aide

Répondre

2

Oui, vous pouvez utiliser Periodic refresh (Polling) ou HTTP Streaming.

Notez que ces deux options peuvent être très gourmandes en bande passante.

+0

Y a-t-il une technique de bande passante pas aussi? ou y a-t-il quelque chose que je peux faire pour simplement ajouter au code préexistant? – Sunny

+2

@Sunny Il y a un compromis ici, plus vous voulez qu'il soit "en temps réel", plus vous utiliserez de bande passante. Il n'y a pas moyen de contourner cela. – NullUserException

0

vous devez effectuer une sorte d'interrogation. Mais avant même que vous faites cela, 1. créer un fichier php qui récupère toutes les données importantes de la base de données. 2. laissez ce fichier renvoyer/renvoyer ces données de manière formatée. 3. avoir la fonction js interroger ce fichier à intervalles (une fonction qui s'exécute dans setInterval())

et oui .. il y aurait quelques problèmes de bande passante mais je pense que c'est gérable.