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

Langage PHP Discussion :

[Tableaux] Nom d'entrée tableau comme variable


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 27
    Points
    27
    Par défaut [Tableaux] Nom d'entrée tableau comme variable
    Salut à toutes et à tous,

    Une question de petit newbie pour vous:

    En gros j'aimerais pouvoir utiliser le nom d'une entrée tableau comme variable et je n'y parviens pas... J'ai créé une requete sql etc. et le résultat est que j'ai une série de données stockées dans le tableau $donnees[]. Les différentes entrées sont par exemple:
    $donnees['bp'];
    $donnees['secourisme'];
    $donnees['blablalba'];
    etc.

    Toutes ces valeurs sont des booléens. J'aimerais créer une fonction "validation" qui m'écrive quelque chose selon la valeur du booléen enregistrée dans ces entrées. J'ai donc fait:

    $donnees = mysql_fetch_array($donnees_sql);

    function validation($champ){
    if($donnees[$champ]) {echo '<img src="oui.png">';}
    else {echo '<img src="non.png">';}
    }


    Et j'aimerais pouvoir taper dans la suite de mon code quelque chose comme

    validation('secourisme')

    qui devrait m'écrire <img src="oui.png"> si le booléen $donnees['secourisme'] était vrai et <img src="non.png"> si ce booléen était faux.

    Il semblerait que php n'aime pas que je lui donne 'secourisme' comme variable à placer dans le nom d'entrée tableau. En gros il semblerait que la fonction "validation" ne comprenne pas que je veux la variable $donnees['secourisme'].

    Qqun(e) sait-il m'aider là-dessus?

    Merci d'avance,
    Vigon

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Bon question de vous aider dans votre réponse, je viens d'effectuer quelques tests:

    Dans la fonction, la valeur de $champ est bien reconnue (autrement dit quand je lui dis "echo $champ", il me retourne bien "secourisme".

    En revanche, la variable $donnees['secourisme'] n'est tout simplement PAS définie! (j'ai fait le test avec un "isset"). Alors qu'elle est bien définie en dehors de ma fonction "validation", un problème de visibilité de mon tableau "donnees" dirait-on... mais je l'ai pourtant défini dans la même boucle que là où se trouve ma fonction... j'ai un peu du mal.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    C'est sansdoute un problème de portée des variables : ta fonction ne connait pas la variable $donnees, donc ta condition est toujours fausse. Tu peux soit utiliser les variables globales, soit passer également $donnees en, paramètre.

    Faq : Portée des variables
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Super merci! J'ai trouvé en simultané . Je ne connaissais pas la commande "global"

    il me suffisait d'ajouter la ligne

    global $donnees;

    dans ma fonction pour rendre mon tableau "donnees" visible dans ma fonction!

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Comment gérer le nom d'un tableau en variable?
    Par pardet dans le forum WinDev
    Réponses: 2
    Dernier message: 15/06/2012, 14h46
  2. Réponses: 3
    Dernier message: 11/01/2010, 06h49
  3. [Tableaux] tri dans un tableau de variables
    Par astrolane dans le forum Langage
    Réponses: 12
    Dernier message: 15/10/2007, 19h55
  4. Réponses: 2
    Dernier message: 24/08/2007, 01h54
  5. Réponses: 9
    Dernier message: 06/04/2007, 19h45

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