Creer des listes dynamique pour afficher els resultats d'une requete SQL [Résolu]

Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
- - Dernière réponse : cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
- 19 sept. 2005 à 19:26
A la suite de mon topic sur comment requeter une BDD sql directement dans flash, je voudrait savoir comment on peut produire une liste "dynamique". C'est a dire que une fois que je connais le nombre exact de reponses a ma requete, je voudrait que le script me duplique le mc que j'aurai pris le soin de créer représentant une ligne de la liste autant de fois que necéssaire.

ci-joint, le code que j'utilise (issu de la class sql de _benjy) :
function requetesql(qry, champ){
sql.onResult = function(rs){
if (rs.isError()){
this.element.nom.text = rs.getError();
return;
}
if (rs.rowCount == 0){
this.element.nom.text = "Aucun resultat";
} else if (rs.rowCount > 0){
for (var i=0; i<rs.rowCount; i++){
for (var j=0; j<rs.columnNames.length; j++){
this.element.nom.text = rs.getRow(i)[champ];
}
}
} else if (rs.success == true){
this.element.nom.text = "Requête éxécuté avec succes !";
}
}
sql.execute(qry);
}

Au passage, vu que son auteur veut que les modificatiosn aportées lui soit transmises, j'ai rajouté le parametre "champ" dans cette fonction permettant de simplifier la selection d'un champ.
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
3
Merci
Salut

alors facon simple ss le scroll,

tu mettra un mask et un scrool apres



tu créer un clip sur ta scene, avec un champ texte dynamique dedans

le clip nommé : 'item', le champ dedans nommé : 'dns'.

ce clip sur ta scene, tu en fait un nouveau (selectionné et F8) et tu nommes (occurence) ce dernier 'container'.

on a donc

_root (avec code sql)

|--- container

|--- item


|---dns (champ texte dynamic)

dans un calque action dans le clip 'item', tu met :



if (_name == "item"){


_visible = false;


return;


}


if (index > 0){


_y = _parent["item"+(index-1)]._y + _parent["item"+(index-1)]._height;


}




dns.text = dnsValue;

ok maitenant tu reviens sur _root et tu a la code sql

dans le onResult :



sql.onResult = function(rs){

if (rs.isError()){

tarce (rs.getError());

return;

}

if (rs.rowCount == 0){

trace("Aucun resultat");

} else if (rs.rowCount > 0){

for (var i=0; i<rs.rowCount; i++){


var objInit = new Object();


objInit.index = i;


objInit.dnsValue = rs.getRow(i)["nomDeTonChampDNS"];



container.item.duplicateMovieClip("item"+i,container.getNextHighestDepth(),objInit);
// voir aide mx 2004 pour les détails de duplicateMovieClip


}


} else if (rs.success == true){

trace("Requête éxécuté avec succes !");


}


}

et voilà

oublie pas de changer "nomDeTonChampDNS" dans
rs.getRow(i)

j'ai elevé le parcour des colonnes qui ne sert a rien quand tu veux qu'un champt et connait le nom



Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de _benjy
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
3
Merci
Bon, je suis arrivé enfin a generer ma liste en fontion du repartiteur selectioné. Je tien tout particulierement a remercier _benjy qui ma beaucoup aidé. J'ai cependant du modifier deux ou trois choses dans le deuxieme fragment de code qui est mentioné plus haut. D'une part pour que sa marche sur mon fla (_ben préocnisait l'utilisation de la racine pour implanter le script sql. Moi je l'ai mis dans un clip. Et d'autre parts, pour obetnir le resultats que je souhaitait. En effet, non pas m'afficher les problemes dans la fentre de sortie, je les ai affichés dans les champs de textes que j'utilise pour les resultats.

Enfin bref, je vous laisse regarder :
//fonction SQL.
function requetesql(qry){
sql.onResult = function(rs){
if (rs.isError()){
var objInit = new Object();
objInit.dnsValue = ""+rs.getError+"";
container.item.duplicateMovieClip("item1",container.getNextHighestDepth(),objInit);
}
if (rs.rowCount == 0){
var objInit = new Object();
objInit.dnsValue = "Aucuns resultats";
container.item.duplicateMovieClip("item1",container.getNextHighestDepth(),objInit);
} else if (rs.rowCount > 0){
for (var i=0; i<rs.rowCount; i++){
var objInit = new Object();
objInit.index = i;
objInit.dnsValue = rs.getRow(i)["dslam"];
objInit.etatValue = rs.getRow(i)["etat"];
container.item.duplicateMovieClip("item"+i,container.getNextHighestDepth(),objInit); // voir aide mx 2004 pour les détails de duplicateMovieClip
}


} else if (rs.success == true){
Resultats.text = "Requête éxécuté avec succes !";
}
}
sql.execute(qry);
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
0
Merci
Merci beaucoup pour ton aide te je regarderai ce demain car je tombe de somaeil... a++
Commenter la réponse de cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
0
Merci
Ben la j'ai suivi a la lettre tes instructions a une exeption près, c'est que je ne suis pas dans la _root. pour mettre le script sql mais dans _root.outils_FT.liste_DSLAM. J'ai par consequent vérifié tous les chemin dans tous les cripts que tu m'a donné et ca ne marche cependant pas.

Je donne ma langue au chat et peut-etre que toi tu aura la reponse...
Commenter la réponse de cs_fanfouer
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Salut

ouaip tu t'es planté quelque part, car mon script marche

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
0
Merci
Ben j'ai un peu fait du copier coller dans un nouveau fla pour verifier que ce n'était pas la non utilisation de la _root. et ca ne marche toujour pas... En suivant strictement tes instructions. Je crois que le plus simple serai que tu m'envoi le fla que tu as utilisé si tu l'as encore. Mon mail : lacombe.f2@free.fr

Merci encore
Commenter la réponse de cs_fanfouer
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Salut

bon ben cool tu t'en es sorti

impécable

juste pour info, je préconise pas d'utilise sql sur root, ct juse pour l'exemple ... :)

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
0
Merci
oui oui mais je parlais bien aussi de l'exmple...
Commenter la réponse de cs_fanfouer