Simple classe pour récupérer les résultats d'une requete sql

Description

Cette classe permet de récupérer les données provenant d'une requête faite à partir du flash.
La requête est cryptée et envoyé au php (fichier data.php) qui la décrypte pour la traiter.

C'est juste un début, il n'y a pas de gestion des erreurs.

La classe intègre l'évènement "fin_requete" qui permet d'agit et récupérer les infos au moment que le résultat arrive et il est prêt.

=== config ==============================================================
La configuration de la base de données (serveur, user et pass) se fait sur mysql.php
Sur le fichier de classe on doit configurer le URL du fichier data.php
=========================================================================

Source / Exemple :


//======================================================
// utilisation de la classe MySqlConn
//======================================================

/// on definit l'instance de classe
var mysql:MySqlConn = new MySqlConn();

//// on applique une requete
mysql.query_exec("select nom, prenom from matable");

/// on gère l'évenement de fin requete
mysql.addEventListener("fin_requete", vasy);

///// on execute une fonction et on gère les valeurs obtenues
///// chaque ligne aura un array ligne[i] (de 1 à n_lignes)
///// chaque élément du tableau est un objet dont les propriétés 
///// sont nommées comme les champs qui résultent de la requete

function vasy(e):void{

	var n_lignes:int = e.target.n_lignes;
	
	for (var i:int=1; i<=n_lignes;i++){
	
	 trace(e.target.ligne[i].nom);
 	 trace(e.target.ligne[i].prenom);

	}

}

//======================================================
// classe
//======================================================

package  
{
	/**

  • ...
  • @author emanuele
  • /
import flash.events.*; import flash.net.*; import flash.utils.getTimer; import flash.display.*; //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //@@@@@@@@@@@@@@@@@@ CLASSE MySqlConn //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ public class MySqlConn extends Sprite { ////////////////////////////////////////////////////////////////////////////////////////// ///// V A R I A B L E S ////////////////////////////////////////////////////////////////////////////////////////// //============= criptage =================================== private var chiave:String = "abcdyfx9ilk"; //============= URL =================================== //private var base_url:String = ""; private var base_url:String = "http://127.0.0.1/votresite/"; private var file_data :String = base_url+"data.php"; //============= autres =================================== public var ligne:Array = new Array(); public var n_fields:int = -1; public var n_lignes:int = -1; ////////////////////////////////////////////////////////////////////////////////////////// ///// M E T H O D E S ////////////////////////////////////////////////////////////////////////////////////////// public function MySqlConn() { } public function query(str:String):String { var i:Number = 0; var count:Number = str.length; var final:String = ""; while (i<count){ var ch:String = str.substr(i,1); var char:String = String( ch.charCodeAt(0) ); for (var j:int=1; j<=char.length; j++) { var lettre:String = String(char.substr(j-1, 1)); if (lettre == "0") { lettre = "10"; } var nouvelle:String = chiave.substr(int(lettre),1); final += nouvelle; } final += chiave.substr(0,1); i++; } return final; } public function query_exec(req_str:String):void { ////// PARTE VARIABILI ========================= var variables:URLVariables = new URLVariables(); variables.alea = getTimer(); variables.rq = query(req_str); //trace(variables.toString()); ////// PARTE REQUEST ========================= var request:URLRequest = new URLRequest(file_data); request.method = URLRequestMethod.POST; request.data = variables; /// è qui che si lega a variables ////// PARTE LOADER ========================= var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.load(request); loader.addEventListener("complete", vasy); function vasy(e:Event):void{ var ind_i:int = 0; var ind_j:int = 0; n_fields = e.currentTarget.data.n_fields; n_lignes = e.currentTarget.data.n_rows; ligne.splice(0,ligne.length); for (ind_i = 1; ind_i <= n_lignes; ind_i++) { /// lignes var champs:Object = new Object(); for (ind_j = 1; ind_j <= n_fields; ind_j++) { /// champs var nom_champs:String = e.currentTarget.data["field" + ind_j]; champs[nom_champs] = e.currentTarget.data[nom_champs + ind_i]; } ligne[ind_i] = champs; } dispatchEvent(new Event("fin_requete")); } } } /// Fin classe } /// Fin package

Conclusion :


J'ai juste voulu vous donner une piste, mais bien sur c'est un début. Par exemple une variable insert_id pourrait envoyer l'id provenant par une requête INSERT (déjà fat sur le data.php mais pas encore au niveau du as).

Codes Sources

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.