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] Tableau associatif dynamique


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut [Tableaux] Tableau associatif dynamique
    Bonjour,

    je n'arrive pas à générer un tableau associatif de façon dynamique, et çà me prend le choux

    En utilisant la façon statique, pas de probleme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION['user_privileges'] = array(
    	  'man_system'		=> 0
    	, 'man_users'		=> 1
    	, 'man_sections'	=> 1
    );
    Et donc j'ai bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SESSION['user_privileges']['man_system'];
    Qui me retourne : 1

    Mais j'aimerais mieux faire appel à une table MySQL pour generer mon tableau associatif, j'ai donc écris ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION['user_privileges'] = array();
    (...)
    while ($_SESSION['user_privileges'] = mysql_fetch_assoc($result_user_privileges)){
    	echo $_SESSION['user_privileges']['privilege']." = ".$_SESSION['user_privileges']['status']."<br />";
    }
    Ce qui me retourne bien à l'affichage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    man_system = 0
    man_users = 1
    man_sections = 1
    Hors ce n'est pas tout à fait ce que je désire, je voudrais que:

    $_SESSION['user_privileges']['man_system'] me retourne 0
    $_SESSION['user_privileges']['man_users'] me retourne 1
    $_SESSION['user_privileges']['man_sections'] me retourne 1

    Et je ne parviens pas à trouver la bonne façon de le faire avec ma table, depuis 3 jours et 3 nuits, aidez-moi, pitié j'ai vidé tout l'aspirine que j'avais

    Cordialement
    Krapno

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['user_privileges'] = array();
    (...)
    while ($result = mysql_fetch_assoc($result_user_privileges))
    {
    $_SESSION['user_privileges'][$result['privilege']] = $result['status'];
    }
    je pense que ca devrait marcher la

  3. #3
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut
    bravo, bien vu!

    c'est tout a fait ce que je cherchais, merci beaucoup t'es un chef
    Krapno

  4. #4
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut
    Re, alors en effet çà marche très bien ainsi mais du coup je ne vois plus trop l'intérêt d'utiliser mysql_fetch_assoc par rapport à mysql_fetch_array car cette syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['user_privileges'] = array();
    (...)
    while ($result = mysql_fetch_array($result_user_privileges))
    {
    $_SESSION['user_privileges'][$result['privilege']] = $result['status'];
    }
    Me donnera le même résultat que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['user_privileges'] = array();
    (...)
    while ($result = mysql_fetch_assoc($result_user_privileges))
    {
    $_SESSION['user_privileges'][$result['privilege']] = $result['status'];
    }
    Je pensais que mysql_fetch_assoc pouvais me generer un tableau associatif directement dans ma variable de session, en une seule ligne...

    Cordialement
    Krapno

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    mysql_fetch_assoc et mysql_fetch_array font quasiement la meme chose.

    en fait, avec un select te renvoyant un résultat de la forme :
    ligne1 champ1 valeur1 champ2 valeur2
    ligne2 champ1 valeur1 champ2 valeur2

    mysql_fetch_assoc va te créer, pour chaque ligne, le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array(
    'champ1'=> valeur1,
    'champ2'=> valeur2
    );
    mysql_fetch_array va te créer, pour chaque ligne, le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    array(
    'champ1'=> valeur1,
    'champ2'=> valeur2,
    1=>valeur1,
    2=>valeur2
    );

    mysql_fetch_array "dédouble" donc les éléments du tableau en permettant d'y acceder par les numeros de colonne du select en plus d'y acceder par les noms litteraux des colonnes. Il s'agit donc essentiellement d'une perte de temps et d'espace mémoire, donc mysql_fetch_assoc est mieux ;o)
    un peu de lecture pour mieux comprendre cette fonction et son 2eme parametre optionnel :
    http://fr2.php.net/fr/mysql_fetch_array

  6. #6
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut
    Merci beaucoup pour cet éclaircissement

    Bonne continuation
    Krapno

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

Discussions similaires

  1. [Tableaux] Tableau associatif dynamique
    Par popeye82 dans le forum Langage
    Réponses: 5
    Dernier message: 09/02/2006, 15h13
  2. [Tableaux] Tableau associatif + occurence
    Par perlgirl dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2005, 13h02
  3. [Tableaux] Tableau HTML dynamique
    Par gunth dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 16h59
  4. [Tableaux] tableau croisé dynamique
    Par flawer dans le forum Langage
    Réponses: 6
    Dernier message: 06/12/2005, 21h38
  5. [Tableaux] Tableau associatif
    Par anzar dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2005, 11h17

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