Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction foireuse

    23 décembre 2005 à 18:24:51

    Salut à tous, saurriezvous me dire pourquoi la fonction ne fonctionne pas ?
    <?php
    mysql_connect('localhost','root','') or die(mysql_error());
    mysql_select_db('rpg');

    echo '
    <table><caption>Caracteristiques du peronnage</caption>
            <tr>
                    <th>Force</th>
                    <th>Endurance</th>
                    <th>Agilité</th>
                    <th>Intelligence</th>
                    <th>Esprit</th>
            </tr>'
    ;
           
            // FONCTION pour recuperer les caracteritiques ------------------------------------------------------------------
            function caracteristiques(){
                    $caracteristiques = mysql_query("SELECT caracteristiques FROM personnage") or die(mysql_error());
                    while($retour_caracteristiques = mysql_fetch_array($caracteristiques)){
                           
                            $tableau_caracteristiques = explode(';',$retour_caracteristiques['caracteristiques']);
                                           
                            for($i=0; $i<=4; $i++){  
                                    $tableau_caracteristiques2 = explode('_',$tableau_caracteristiques["$i"]);                 
                                    ${$i} = $tableau_caracteristiques2["1"];
                                    global $$i;
                            }
                           
                            $force = ${"0"};
                            $endurance = ${"1"};
                            $agilite = ${"2"};
                            $intelligence = ${"3"};
                            $esprit = ${"4"};
                                           
                            global $force, $endurance, $agilite, $intelligence, $esprit;   
                    }
            }
            // ------------------------------------------------------------------------------------------------------------     
            caracteristiques();          
                    echo '
                    <tr>
                            <td>'
    .$force.'</td>
                            <td>'
    .$endurance.'</td>
                            <td>'
    .$agilite.'</td>
                            <td>'
    .$intelligence.'</td>
                            <td>'
    .$esprit.'</td>
                    </tr>         
    </table>'
    ;
    ?>


    Pourtant le code qui suit renvoi bien les résultats attendus.
    <?php
    echo '
    <table><caption>Caracteristiques du peronnage</caption>
            <tr>
                    <th>Force</th>
                    <th>Endurance</th>
                    <th>Agilité</th>
                    <th>Intelligence</th>
                    <th>Esprit</th>
            </tr>'
    ;
            mysql_connect('localhost','root','') or die(mysql_error());
            mysql_select_db('rpg');
           
            // C'EST CE BLOC QU'IL FAUT TRADUIRE EN FONCTION -------------------------------------------------------------
           
            $caracteristiques = mysql_query("SELECT caracteristiques FROM personnage") or die(mysql_error());
            while($retour_caracteristiques = mysql_fetch_array($caracteristiques)){
                   
                    $tableau_caracteristiques = explode(';',$retour_caracteristiques['caracteristiques']);
                                   
                    for($i=0; $i<=4; $i++){  
                            $tableau_caracteristiques2 = explode('_',$tableau_caracteristiques["$i"]);                 
                            ${$i} = $tableau_caracteristiques2["1"];
                            global $$i;
                    }
                   
                    $force = ${"0"};
                    $endurance = ${"1"};
                    $agilite = ${"2"};
                    $intelligence = ${"3"};
                    $esprit = ${"4"};
                                   
                    global $force, $endurance, $agilite, $intelligence, $esprit;   
            }
            // ------------------------------------------------------------------------------------------------------------     
                           
                    echo '
                    <tr>
                            <td>'
    .$force.'</td>
                            <td>'
    .$endurance.'</td>
                            <td>'
    .$agilite.'</td>
                            <td>'
    .$intelligence.'</td>
                            <td>'
    .$esprit.'</td>
                    </tr>         
    </table>'
    ;
    ?>



    Sephi-Chan, qui ne voit pas le problème dans sa fonction :(
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2005 à 20:33:31

      Une variable ne doit pas commmencer par un chiffre je suppose?

      Sinon dans ta function fait return array($force, $endurance, $agilite, $intelligence, $esprit);
      et pour appeler ta fonction, tu fais
      list($force, $endurance, $agilite, $intelligence, $esprit) = caracteristiques();

      ;)
      • Partager sur Facebook
      • Partager sur Twitter

      Fonction foireuse

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown