cs_CyAn
Messages postés3Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2008
-
4 févr. 2008 à 19:02
Clubistinho
Messages postés6Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention28 avril 2011
-
6 févr. 2008 à 16:08
Bonjour,
J'ai besoin de vos lumières, j'essaye de récuperer des données qui se trouvent dans ma base pour ensuite les afficher dans un clip. Pour l'instant je le fais simplement dans un trace mais il me ressort à chaque fois undefined. Je pense que la donnée n'a pas le temps de se charger c'est pourquoi il m'en retourne ce résultat. Etant débutant en AS je ne sais pas d'où ça peut venir. J'ai refait un tuto pour reprendre le code c'est pourquoi il me semble juste et je ne vois pas d'où le problème provient.
Voici mon code :
Page Php :
<?
require_once ('class_bdd.php');
/* déclaration de la classe bdd */
class class_flashpage {
//constructeur de la classe, syntaxe obligatoire pour amfphp
function class_flashpage(){
$this->methodTable = array
(
"loadArtiste" => array
(
"description" => "recupère les infos d'un membre dans la DB MySQL",
"access" => "remote"
)
);
}
function loadArtiste($id_artiste){
//classe pour la gestion d'événements
import mx.events.EventDispatcher;
//classe qui permettra de récupérer les infos d'un artiste dans la DB MySQL
//et qui encapsulera ces infos de manière transparente
class artiste
{
//l'id de l'artiste courant dans la base de données MySQL
//(-1 si c'est un nouveau membre qu'on va ajouter)
private var nid_artiste:Number;
//variables à déclarer pour utiliser la classe EventDispatcher
private var dispatchQueue:Function;
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
//Objet qui définira l'événement qu'on enverra
//(pour qu'il puisse être entendu par un écouteur à un autre endroit)
private var loadEvent:Object;
//constructeur pour faire des beaux ptis artistes :-)
//id_artiste est l'id de l'artiste à aller rechercher dans notre DB MySQL
public function artiste(nid_artiste:Number){
//appel à la méthode loadArtiste(id) de notre classe PHP et
//comme le traitement est asynchrone, on définit un PendingCall "myPC"
//qui préviendra quand le traitement PHP sera fini
var myPC:PendingCall = maConnexion.loadArtiste(nid_artiste);
//on définit une variable de type Artiste pour y stocker l'artiste courant
//et pouvoir y accéder quand on sera dans la fonction liée à notre PendingCall
var item:artiste = this;
//code qui sera exécuté quand le PendingCall prévient que le traitement PHP est fini
//et qu'on a donc bien récupéré les infos pour pouvoir les utiliser
//(ces infos sont stockées dans tab_flashPage)
myPC.onResult = function(tab_flashPage){
//on a les infos sur l'artiste dans tab_flashPage (qui dans notre exemple
//est un tableau associatif contenant le nom et l'id de l'artiste)
//on définit la propriété 'id' de notre artiste
item.nid_artiste = tab_flashPage["id_artiste"];
//on stocke notre membre dans l'objet loadEvent (que l'on récupérera
//à l'endroit où on entendra l'événement)
item.loadEvent.artiste = item;
//on déclenche l'événement (pwouet dans notre exemple)
item.dispatchEvent(item.loadEvent);
}
}
//ID
public function set id_artiste (n:Number)
{
nid_artiste = n;
}
public function get id ():Number
{
return nid_artiste;
}
//on défini une instance de notre classe Artiste
//qui correspondra au Artiste dont l'id vaut 1 dans la DB MySQL
var monArtiste:artiste = new artiste(1);
//écouteur
var ecouteur:Object = new Object();
//fonction qui sera exécutée quand notre écouteur entendra l'événement "pwouet"
//que l'on aura défini dans notre classe Artiste et qui sera déclenché quand le
//chargement des infos de l'artiste sera fini
ecouteur.pwouet = function(evtObj:Object):Void
{
//voilà on a récupéré l'id de l'artiste de manière transparente question accès DB et (amf)PHP.
sendAndLoad(trace(evtObj.artiste.id_artiste));
}
//on ajoute un écouteur sur notre artiste pour qu'il réagisse à l'événement "pwouet"
monArtiste.addEventListener("pwouet",ecouteur);
Voila, merci de votre aide car là j'avoue je suis dans la penade.
Clubistinho
Messages postés6Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention28 avril 2011 6 févr. 2008 à 16:08
salut,
votre travail est trés compliqués,
je vous conseil de travailler avec zinc
//connection to base de données mdm.Database.MSAccess.connect("base.mdb");
mdm.Database.MSAccess.select("SELECT * FROM Table1");
//cette code vous permet de recuperer des donées de la base
on (press) {
mdm.Database.MSAccess.select("SELECT * FROM Table1 order by score ");
var dataSet = mdm.Database.MSAccess.getData();
_root.ls.dataProvider = dataSet;
for (var l:Number = 0; l<3; l++) {
myDP_array.addItem({label:dataSet[0][l]});
}
}