Aide - Recherche - Membres - Calendrier
Version complète : importation de données mysql vers tableau AS via PHP
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Gestion de données dynamiques
kanab
Bonjour à tous,

je galère depuis 4 jours, recherches sur google et sur divers forums, mais en vain.
J'espère trouver quelqu'un pour m'aider ici.

Donc, voilà, je suis débutant de chez débutant en AS, mais suite à une demande d'un ami musicien, je dois intégrer un lecteur mp3 sur leur site, jusque là pas de problème, le lecteur fonctionne, mais il m'a également demandé de pouvoir lui-même faire une playlist des extraits qui passeraient sur le site.
je me suis donc mis à l'ouvrage et j'y suis presque, mais là je bloque sur un point, j'arrive bien à importer les variables provenant d'une base mysql via un fichier php, mais pas à les mettre dans un tableau pour les exploiter avec AS

Mon fichier php (lireliste.php):

PHP:
<?php
function parse($var, $value){
echo utf8_encode("&$var=$value");
}
$connect = mysql_connect("serveur", "login", "pass");
mysql_select_db("bdd", $connect);
$result = mysql_query("SELECT * FROM playlist");
$cant = 0;
while($row=mysql_fetch_array($resul
t)){
parse("songdesc$cant", $row["songdesc"]);
parse("songpath$cant", $row["songpath"]);
$cant++;
}
parse("cant", $cant)
?>


et mon code AS

en image1 :

ActionScript:

stop();


var LV:LoadVars = new LoadVars();

LV.onLoad = function(ok:Boolean){
if(ok){
gotoAndStop(2);
}
else{
gotoAndStop(3);
}
}

LV.load("http://www.blackael.be/testo/lirelist.php");



et en image 2 :

ActionScript:

cant = number(LV.cant);
i = 0 ;
sdesc = Array();
while(i<cant){
sdesc[i] = LV.songdesc+i;
trace(i+" hello "+sdesc[i]);
i++;
}



la ligne que j'ai mis en gras est celle qui me pose problème, en fait dans la variables LV.songdesc0, j'ai le bon contenu, ainsi que dans LV.songdesc1, etc,... mais comment faire changer le nom de cette variable afin de pouvoir la mettre dans mon tableau. La trace est là juste pour voir si je passais bien dans ma boucle autant de fois qu'il y avait d'extrait dans la playlist et vois si les variables était mises à jour, mais voilà, je passe bien le nombre de fois nécessaire, mais pas possible de remplir mon tableau.

voici ce que me sors la trace :

0 hello NaN
1 hello NaN

mais effectivement pour moins de confusion, j'ai donc changé également dans le code en haut.

Donc, je récapitule, si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc0);



ma valeur passe, si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc1);



l'autre valeur passe aussi, mais si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc+i);



là, les valeurs ne passe pas

En fait, ma question est, comment dois-je faire pour incrémenter le nom de ma variable LV.songdesc en fonction de i

Merci d'avance pour vos réponses.
Kanab
monz
Citation (kanab @ Dec 1 2008, 10:12 AM) *
voici ce que me sors la trace :

0 hello NaN
1 hello NaN

mais effectivement pour moins de confusion, j'ai donc changé également dans le code en haut.

Donc, je récapitule, si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc0);
ma valeur passe, si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc1);
l'autre valeur passe aussi, mais si je mets :

ActionScript:

sdesc[i] = string(LV.songdesc+i);
là, les valeurs ne passe pas

En fait, ma question est, comment dois-je faire pour incrémenter le nom de ma variable LV.songdesc en fonction de i

Merci d'avance pour vos réponses.
Kanab


Salut,

Essaie :

Action Script


sdesc[i] = this["LV.songdesc"+i];


Et quand tu crées ton tableau :

Action Script


sdesc = new Array();

kanab
Bonjour,

déjà essayé this, dans ce cas dans la trace au lieu de NaN, j'ai undefined.

merci pour ta réponse.
kanab
Voilà la solution (trouvée par Jano 95, que je remercie encore une fois au passage smile.gif)

sdesc[i] = LV["songdesc"+i];
kanab
Rebonjour,

Voilà, je me retrouve devant le problème suivant depuis l'autre jour, comment intégrer ce chargement de tableau à mon lecteur, je suppose que je pense trop PHP, j'arrive pas à me faire à la logique d'AS et ce qui m'intéresserait surtout, c'est pas tellement la solution, c'est aussi des explications, car je voudrais comprendre pourquoi le prog réagit comme cela.

Merci pour votre indulgence et compréhension.

Donc, en gros, j'ai un script dans mon animation qui commençait par

ActionScript:

onClipEvent (load) {
spath = new Array("http://users.skynet.be/kns/Maintenantcestfinimaster2.mp3", "http://users.s"...etc);
sdesc = new Array("C'est fini", "Control your body", "Zone 51", ...etc);
playing = "false";
cur = false;
i = 0;
vol = 52;
albumName = "KnsProd";
songTitle = sdesc[i];
songNum = i+1;
playSong();




et qui fonctionne très bien, mais, comme je voudrais charger la play liste en début d'anim., j'ai fait ceci

ActionScript:

onClipEvent (load) {
if (!sdesc[0].length){
gotoAndStop(2);
}
playing = "false";
cur = false;
i = 0;
vol = 52;
albumName = "KnsProd";
songTitle = sdesc[i];
songNum = i+1;
playSong();




en image 2, j'ai :

ActionScript:

charg = "chargement en cours";
var LV:LoadVars = new LoadVars();
LV.onLoad = function(ok:Boolean){
if(ok){
gotoAndStop(3);
}
else{
gotoAndStop(4);
}
}
LV.load("http://www.blackael.be/testo/lirelist.php");




et en image 3 :

ActionScript:

cant = LV.cant;
i = 0 ;
sdesc = new Array();
slist = new Array();
while(i<cant){
sdesc[i] = LV["songdesc"+i];
spath[i] = LV["songpath"+i];
i++;
}
gotoAndStop(1);




Et jamais la liste ne se charge pourtant l'animation de transfert de données à lui seul, fonctionne, mais intégré dans le lecteur, ça va plus. Il y a quelque chose qui m'échappe dans le déroulement du prog en AS

Je pense qu'il s'agit d'une évidence, pour moi, le programme n'a pas le temps de charger les valeurs et il continue avec son tableau vide.

En fait, en regardant au débugger, j'ai l'impression que je ne vais jamais à l'image 3.

Voilà, un peu perdu le kanab
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.