Recuperation du resultat d'une requete mysql dans un tableau javascript

Contenu du snippet

Cette fonction séclare un tableau associatif javascript
de la forme tableau["nomchamp"][n°ligne] == valeur
contenant le résultat d'une requête mysql.

(04/06/2004 : correction d'un bug trouvé qui survenait avec des résultats de requête vides)

Source / Exemple :


// Déclare un tableau associatif javascript de la forme tableau["nomchamp"][n°ligne] == valeur
// contenant le résultat d'une requête mysql.
// $requete : chaine de caractères contenant la requête mysql à lancer.
// $nomtabjs : nom de la variable tableau à déclarer en javascript.

function mysql_to_js($requete, $nomtabjs) {

	// Requête mysql
	$req = mysql_query($requete)
	or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
	
	$taille = mysql_num_rows($req);
	// Ecriture de la déclaration du tableau javascript si la requête
	// contient quelque chose, sinon déclaration d'un tableau null.
	$numfields = mysql_num_fields($req);
	if($numfields > 0) {
		
		// Déclaration de la variable tableau.
		echo("var ".$nomtabjs." = new Array(".$numfields.");\n");
		// Déclaration des tableaux de valeurs pour chaque champs.
		for($i=0; $i<$numfields; $i++) {
			echo($nomtabjs."['".mysql_field_name($req, $i)."'] = new Array(".$taille.");\n");
		}
		
		if($taille>0) {
			// Déclaration du reste des valeurs du résultat de la requête.
			$i=0;
			while($data = mysql_fetch_assoc($req)) {
				foreach($data as $key => $value) {
					echo($nomtabjs."['".mysql_escape_string($key)."'][".$i."] = '".mysql_escape_string($value)."';\n");
				}
				$i++;
			}
		}
	}
	else echo("var ".$nomtabjs." = null;\n");
}

Conclusion :


Cette fonction peut s'avérer très utile, si vous projetez de faire des contrôles javascript dans une page sur des données chargées au démarrage de celle ci.

(cela évite les redirections et temps de chargements à chaque modification d'une combobox, par exemple)...

en espérant vous avoir été utile, @+

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.