IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Connexion MySQL retourne des valeurs UNDEFINED !


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Connexion MySQL retourne des valeurs UNDEFINED !
    Bonjour,

    Dans le document principale (appart.php), j'ai placé un SWF qui affiche des tarifs. Au lieu d'afficher les montants dans les champs de textes dynamiques, ça me retourne UNDEFINED.

    Le document select.php gère les valeurs qui doivent être envoyées à Flash.

    select.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php require_once('../Connections/PHPMySQLconn.php'); ?>
    <?php 
    // construire et exécuter la requête 
    $requete = "SELECT * FROM prix_defaut"; 
    $resultat = @mysql_query($requete);
    $i = 0;
    $listeResultats = "";
     
    while ($donnees=mysql_fetch_array($resultat)){
     
    $listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['prix_3j']));
    $listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['prix_sem']));
    $listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['prix_2sem']));
    $listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['prix_mois']));
    $i++;
    }
    $listeResultats .= "&total=".$i."&";
     
    echo $listeResultats;
    ?>

    Flash (Actions)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    myData = new LoadVars(); 
     
    myData.onLoad = function(){ 
    placeTheDataIntoTheRightPlace(); 
    }; 
     
    myData.load("http://localhost/~subrenaud/flash/select.php"); 
     
    placeTheDataIntoTheRightPlace = function(){ 
    unesemaine_txt.text = myData.prix_sem; 
    deuxsemaines_txt.text = myData.prix_2sem; 
    mois_txt.text = myData.prix_mois; 
    promo_txt.text = myData.prix_promo; 
    };
    Dans Flash, mes champs de texte dynamiques s'appellent:
    unesemaine_txt
    deuxsemaines_txt
    mois_txt
    promo_txt

    Dans Mysql, ils sont liées à la table prix_defaut
    id_appart (int)
    prix_3j (int)
    prix_sem (int)
    prix_2sem (int)
    prix_mois (int)

    Quelqu'un saurait-il me dire où est mon erreur ?!

    Merci pour votre aide !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut hypothèse
    Dans ma page PHP, le tableau (array) est peut-être illisible pour Flash ?

    Quand je teste le PHP dans le browser sans Flash, il retourne ceci:
    Voici ce que me retourne le browser quand je teste la page php sans Flash:
    &resultat_0=300&resultat_0=500&resultat_0=800&resultat_0=1200&resultat_1=234&resultat_1=545&resultat_1=453&resultat_1=1243&resultat_2=432&resultat_2=434&resultat_2=343&resultat_2=435&resultat_3=543&resultat_3=545&resultat_3=443&resultat_3=463&resultat_4=0&resultat_4=0&resultat_4=0&resultat_4=0&resultat_5=0&resultat_5=0&resultat_5=0&resultat_5=0&total=6
    Je débute et j'ai essayé plusieurs tuto en vain. Ils sont soit trop vieux, soit pas du tout adaptable pour un débutant.

    Je demande donc l'assistance d'un bon samaritain pour m'aider à déchiffrer ce qui ne va pas. Merci encore !

  3. #3
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    salut,
    ben déjà il y a un blème puisque tu répettes quatre fois chaque variable ???
    &resultat_0=300&resultat_0=500&resultat_0=800&resultat_0=1200
    je n'ai pas fait de test mais ça me semble pas bon

    ensuite je ne comprends si tu renvoies à flash quelque chose comme
    et coté flash tu essayes de lire :
    normalement on devrait voir quelque chose comme :
    enfin je pense qu'avec ce tutorial là tu devrais t'en sortir ?
    http://stephaneey.developpez.com/tut...shmx/flashphp/


  4. #4
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Lu

    Commence par ca : http://complet1.free.fr/bd_flash7/tu...oadVars_a1.php
    Je pense que t'en a grandement besoin.

    Bon plaisir


    _________________
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    placeTheDataIntoTheRightPlace = function(){ 
    unesemaine_txt.text = myData.prix_sem; 
    deuxsemaines_txt.text = myData.prix_2sem; 
    mois_txt.text = myData.prix_mois; 
    promo_txt.text = myData.prix_promo; 
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &resultat_0=300&resultat_0=500&resultat_0=800&resultat_0=1200&resultat_1=234&resultat_1=545&resultat_1=453&resultat_1=1243&resultat_2=432&resultat_2=434&resultat_2=343&resultat_2=435&resultat_3=543&resultat_3=545&resultat_3=443&resultat_3=463&resultat_4=0&resultat_4=0&resultat_4=0&resultat_4=0&resultat_5=0&resultat_5=0&resultat_5=0&resultat_5=0&total=6

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut C'est mieux mais c'est pas encore ça. Ça ne retourne rien.
    Salut les docteurs,

    Merci pour votre bonne volonté à tenter de m'aider, mais là, je suis un peu désemparé. J'ai imprimé et lu tout ce que vous m'avez suggéré. Rien n'y fait. Je crois que le problème est dans la syntaxe à utiliser. Qqun pourrait me dire ce qui fait que ça ne marche toujours pas ?

    PHP (select.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php require_once('../Connections/PHPMySQLconn.php'); ?>
    <?php
    $colname_rsPrix = "-1";
    if (isset($_GET['appartementsID'])) {
      $colname_rsPrix = (get_magic_quotes_gpc()) ? $_GET['appartementsID'] : addslashes($_GET['appartementsID']);
    }
    mysql_select_db($database_PHPMySQLconn, $PHPMySQLconn);
     
     
    // construire et exécuter la requête 
    $qr = mysql_query("SELECT * FROM prix_defaut");
    $nrows = mysql_num_rows($qr);
    for ($i=0; $i < $nrows; $i++) {
      $row = mysql_fetch_array($qr);
      echo $row['prix_3j'].", ".$row['prix_sem']."<br>";
      echo " ".$row['prix_2sem']." ".$row['prix_mois']."<Br>";
    }
    ?>

    Flash (Actions):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // En premier creer une occurence de la classe LoadVars
    lvTest = new LoadVars(); 
     
    // Appel de la méthode load pour charger les données du fichier externe
    lvTest.load('http://localhost/~subrenaud/flash/select.php');
     
    // Declaration des actions a executer a la fin du chargement :
    lvTest.onLoad = function(blTest){
      if( blTest ){
        // Chargement réussi : ces variables sont accessibles :
    unesemaine_txt.text = lvTest.prix_sem; 
    deuxsemaines_txt.text = lvTest.prix_2sem; 
    mois_txt.text = lvTest.prix_mois; 
      }else{
        // Erreur lors du chargement
        trace('Erreur lors du chargement');
      }
    }
    Mes champs de texte dynamiques s'appellent:
    unesemaine_txt
    deuxsemaines_txt
    mois_txt
    promo_txt

    Dans Mysql, ils sont liées à la table prix_defaut:
    id_appart (int)
    prix_3j (int)
    prix_sem (int)
    prix_2sem (int)
    prix_mois (int)
    Mon flash devrait afficher différentes valeurs en fonction de l'appartement choisit (appartementsID=1, 2 ,3 ou 4).

    Voilà,
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    apparemment tu n'as pas bien compris comment marche l'interraction entre flash et php reprenons tout à zéro sur un exemple ultra simplissime qui te premettra de reconstruire progressivement ton appli
    1 - coté php écrit ce code suivant (et rien d'autre) dans une page test.php.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $retourRequete1 = "toto";
    echo "&valeur=".$retourRequete1 ;
    ?>
    2 - coté flash :
    tu crées un champs texte dynamique nommé sortie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    System.useCodepage = true;//en option
    var my_lv:LoadVars = new LoadVars();
     
    my_lv.onLoad = function(ok:Boolean) {
         if(ok) {
              // Le chargement a réussi
              sortie.text = my_lv.valeur;
    }
     
    my_lv.load(test.php");
    3 - tu places tout ça dans le répertoire php qui va bien

    si ça ne marche pas ben je sais pas ce qu'il faut faire ?!

  7. #7
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Citation Envoyé par CR_Gio
    paricilas si tu a bien les tuto qu'on t'as indiqué ( surtout le mien) alors tu ne ferras pas l'érreur

  8. #8
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my_lv.load("test.php");
    dans l'éditeur ça se voit tout de suite...

  9. #9
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Oui c'est une erreur de frappe, c'est tout excusable !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my_lv.load("http://localhost/test.php");
    Car il es en local. et bref tu sais ...

    PS: Moi je ne me premetrai jamais de faire une remarque a cause d'un carractere manquant .
    Citation Envoyé par CR_Gio
    "Si tu a été voir la page que le lien pointe,"

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut bon alors
    il y a là vraiment tout pour m'aider. Je vais y arriver ! Je peux pas m'y remettre avant jeudi soir (Minuit en France). Désolé de ne pas avoir répondu plus tôt.


  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut donc...
    Salut Messieurs, bonjour Dom_dev,

    a. Dans le code que tu m'as donné, qu'est-ce qui change quand on ajoute une requête ? Simplement $retourRequette2 ? valeur ne change pas ?
    b. Dans le Flash, si j'ai un champ "prix_txt", j'ajoute simplement prix_txt.text = my_lv.valeur; ?
    c. Toujours dans Flash, j'ai l'impression que la page PHP n'est pas appelée... Avant il y avait au moins une fenetre de "tentative de communication" qui s'affichait au lancement du SWF.

    Heureusement que c'est pas mon métier... À noter, si ça peut servir, que ce sont des chiffres que je veux transmettre. Merci encore !

    1 - coté php écrit ce code suivant (et rien d'autre) dans une page test.php.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $retourRequete1 = "toto";
    echo "&valeur=".$retourRequete1 ;
    ?>
    2 - coté flash :
    tu crées un champs texte dynamique nommé sortie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    System.useCodepage = true;//en option
    var my_lv:LoadVars = new LoadVars();
     
    my_lv.onLoad = function(ok:Boolean) {
         if(ok) {
              // Le chargement a réussi
              sortie.text = my_lv.valeur;
    }
     
    my_lv.load("test.php"); }
    3 - tu places tout ça dans le répertoire php qui va bien

    si ça ne marche pas ben je sais pas ce qu'il faut faire ?![/QUOTE]

  12. #12
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    c. Toujours dans Flash, j'ai l'impression que la page PHP n'est pas appelée... Avant il y avait au moins une fenetre de "tentative de communication" qui s'affichait au lancement du SWF.
    Là si ça marche plus je cale.
    Remarque, il faut bien sur passer par le serveur php pour tester ton application, à la simple compilation ça affiche n'importe quoi vu que le "echo" de php n'est pas executé.
    Dans le Flash, si j'ai un champ "prix_txt", j'ajoute simplement prix_txt.text = my_lv.valeur; ?
    oui, cependant il faut bien t'assurer préalablement que l'objet loadVars my_lv à bien terminé son chargement à l'aide de sa méthode .onLoad() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my_lv.onLoad = function(ok:Boolean) {
    if(ok) {
    	// Le chargement a réussi
                 //mes actions
            }
    }
    Dans le code que tu m'as donné, qu'est-ce qui change quand on ajoute une requête ? Simplement $retourRequette2 ? valeur ne change pas ?
    c'est le contenu de la variable qui est renvoyé et qui du coup change de nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "&valeur=".$retourRequete1 ;
    le contenu de $retourRequete1 et passé à valeur si tu veux envoyer plusieurs variables php il faut plusieurs variables dans l'url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "&valeur=".$retourRequete1."&valeur2=".$retourRequete2;
    si tu as toute une arborescence structurée de variables à passer utilise dans ce cas un fichier (ou un flux) XML récupéré cote flash par un objet XML qui a les mêmes propriétés que l'objet loadVars pour la connexion plus les propriétés de "parsing" XML

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut ok
    Salut Dom,

    Merci pour ta patience ! Ça me semble bien clair. Je fais ça ce soir.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 34
    Points : 19
    Points
    19
    Par défaut bon alors donc
    Le SWF renvoit les valeurs UNDEFINED. C'est peut-être parce que chaque appart est lié à la variable appartementsID=1 ou 2, 3, 4.
    Cette valeur n'est pas définit dans le PHP. Je tente d'ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE id = $appartementsID
    dans ma requête. Ça n'a pas l'air de marcher aussi simplement. Comment associer l'ID de l'appart aux tarifs relatifs ?

    ma table PRIX_DEFAUT se compose de:
    id_appart
    prix_3j
    prix_semaine
    prix_2semaines
    prix_mois

    FLASH:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //tell Flash to display special characters
    System.useCodepage=true; 
     
     //create a new "LoadVars" object
    myLoadVar = new LoadVars (); 
     
    //load the contents of the text file into the LoadVars object
    myLoadVar.load("http://127.0.0.1/~ordi/flash/select.php"); 
     
    //check to see if the loading is completed and, if so, put the contents in the text field
    myLoadVar.onLoad = function (success){ 
      if (success == true) { 
         	unesemaine_txt.text = my_lv.prix_semaine;
    		deuxsemaines_txt.text = my_lv.prix_2semaines;
    		mois_txt.text = my_lv.prix_mois;
      }
    }
    PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php 
    mysql_connect("localhost","root","");
    mysql_select_db("appart_db");
    $qr = mysql_query("SELECT * FROM prix_defaut");
    $nrows = mysql_num_rows($qr);
    $rString = "&n=".$nrows;
    for ($i=0; $i < $nrows; $i++) {
     $row = mysql_fetch_array($qr);
     $rString .= "&id_appart".$i."=".$row['id_appart'].
     "&prix_3j".$i."=".$row['prix_3j'].
     "&prix_semaine".$i."="
     .$row['prix_semaine'].
     "&prix_2semaines".$i."="
     .$row['prix_2semaines'].
     "&prix_mois".$i."="
     .$row['prix_mois'];
    }
    echo $rString."&";
    ?>
    Résultat dans le browser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &n=6&id_appart0=1&prix_3j0=300&prix_semaine0=&prix_2semaines0=&prix_mois0=1200&id_appart1=2&prix_3j1=234&prix_semaine1=&prix_2semaines1=&prix_mois1=1243&id_appart2=3&prix_3j2=432&prix_semaine2=&prix_2semaines2=&prix_mois2=435&id_appart3=4&prix_3j3=543&prix_semaine3=&prix_2semaines3=&prix_mois3=463&id_appart4=10&prix_3j4=0&prix_semaine4=&prix_2semaines4=&prix_mois4=0&id_appart5=11&prix_3j5=0&prix_semaine5=&prix_2semaines5=&prix_mois5=0
    fla_php.zip

  15. #15
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    je ne peux pas faire de tests parce qu'il aurait fallu me simuler le retour des requêtes avec la base de données.
    par contre il y a une grosse erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //tell Flash to display special characters
    System.useCodepage=true; 
    
     //create a new "LoadVars" object
    myLoadVar = new LoadVars (); 
    
    //load the contents of the text file into the LoadVars object
    myLoadVar.load("http://127.0.0.1/~ordi/flash/select.php"); 
    
    //check to see if the loading is completed and, if so, put the contents in the text field
    myLoadVar.onLoad = function (success){ 
      if (success == true) { 
         	unesemaine_txt.text = my_lv.prix_semaine;
    		deuxsemaines_txt.text = my_lv.prix_2semaines;
    		mois_txt.text = my_lv.prix_mois;
    Il faut utiliser le même nom car il s'agit du même objet !

Discussions similaires

  1. [uib] asDLL retourne des valeurs étranges
    Par qi130 dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 12/10/2010, 20h00
  2. Réponses: 0
    Dernier message: 15/04/2010, 14h54
  3. Réponses: 4
    Dernier message: 24/11/2008, 21h47
  4. Requête retournant des valeurs constantes prédéfinies
    Par hackrobat dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/06/2006, 19h01
  5. [ Struts ] Je récupère des valeurs undefined.
    Par n@n¤u dans le forum Struts 1
    Réponses: 11
    Dernier message: 30/05/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo