11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous. Je vous écris ce message car j'ai un souci que je n'arrive pas à résoudre.

Pour faire simple, je possède un fichier php "test.php" où je réalise 2 requêtes Mysql pour récupérer des valeurs dans une BDD (ainsi que la date à laquelle la valeur a été placée dans la BDD) et également la moyenne, le max etc.. de cette colonne val.

Voici ce code :

$temps= "DAYOFYEAR";
$query = 	"SELECT val,
		UNIX_TIMESTAMP(date) AS time
		FROM $table WHERE $temps(date) = $temps(NOW())"	
			or die('Impossible d\'exécuter la requête :' . mysql_error());		//Sinon ce message d'erreur s'affiche		
		
$result = mysql_query($query); // on place le résultat de la requête dans une variable result
$i=0;
$resultat =array();
if($result){
	while($data = mysql_fetch_array($result)){	//on récupère le résultat dans un tableau nommé data
		$resultat += array('data'.$i => $data['val'],
					 'time'.$i => $data['time']); 
		$i++;
	}
}

$query = 	"SELECT	AVG(val) AS moy,
				STD(val) AS eq,
				MAX(val) AS max,
				VARIANCE(val) AS var,
				MIN(val) AS min						
				FROM $table WHERE $temps(date) = $temps(NOW())"	
				 or die('Impossible d\'exécuter la requête :' .mysql_error());		//Sinon ce message d'erreur s'affiche		
		
$result = mysql_query($query); // on place le résultat de la requête dans une variable result
if($result){
	$data = mysql_fetch_array($result);	//on récupère le résultat dans un tableau nommé data
	$resultat += array('moy'=> $data['moy'],
				'Eq'=> $data['eq'],
				'var' => $data['var'],
				'max' => $data['max'],
				'min' => $data['min']); 					
}
echo json_encode($resultat);


Ensuite, je possède un fichier Js "test.js" où se trouve la requête Ajax qui fait appel au fichier "test.php".

Voici le code :


	$(".loader2").show(); //on affiche le gif de chargement tant que la requête n'est pas effectuée
	var lien = "test.php"; 
	$.ajax({ 
		url:lien, //lien du script php à exécuter
		data:"", // données en paramètre
		type:'POST', // envoi en POST
		dataType:'json', //type de données
		success: function(resultat){ //si l'appel de la méthode est réussie
		
		alert(resultat.data0);
		$(".loader2").hide(); // on cache le gif de chargement

		} 
	});


Alors avec ce bout de code j'obtiens bien une alert avec la valeur de data0 mais par contre je ne vois pas comment réaliser une simple boucle pour obtenir data0, data1, data2,...

Voici un exemple de ce que je souhaite réaliser :

var i;
var test;
for (i=0;i<resultat.length;i++){
      test += resultat.data+i;
}

alert(test);



je ne sais pas si mon message est clair mais si quelqu'un à une idée de mon problème, je serai ravi qu'il me donne une piste. Merci
Modifié par lorenzo_one (18 Aug 2011 - 18:07)
Bonjour lorenzo_one,

Apparament la variable "resultat" est un tableau contenant des tableaux associatifs donc tu pourrais tester ce genre de code:

var a;
var test = "";

for (a=0;a<resultat.length;a++){
test += resultat[a]['moy'] + "-" + resultat[a]['Eq'] + "-" + resultat[a]['var'];
}

alert(test);

J'ai pas mis toute les valeurs pour simplifier (max et min).
Modifié par lacsap68 (17 Aug 2011 - 19:09)
Bonjour lacsap68 mais en fait j'ai trouvé la solution à mon problème, il suffisait de faire ceci :

	var donnees = [];
	$.each(resultat, function(k, v) {
		
	donnees.push([k,v]);// on récupère les données
		
	});


Merci quand même pour ton soutien! Smiley cligne