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 :

Élément tableau dans variable de session


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut Élément tableau dans variable de session
    Bonjour à tous !

    J'ai créé un tableau dans une variable de session :

    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
     
    //requete etc....
    $_SESSION['test_dep'] = array();
    while($dep = mysql_fetch_assoc($res_dep)){
    	$num_dep = $dep['num_dep'];
     
    	if($j<$nb_dep){
     
    		echo "<dd>- ".stripslashes($dep['nom'])." ($num_dep) , </dd>";
    		$j++;
    	}else{
    		echo "<dd>- ".stripslashes($dep['nom'])." ($num_dep) . </dd></dl>";
    	}
    array_push($_SESSION['test_dep'],array('num_dep'=>$num_dep,'nom_dep'=>stripslashes($dep['nom'])));
    }
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($_SESSION['test_dep']['nom_dep']."<br />");
    Puis j'ai l'erreur suiivant : Undefined index: nom_dep

    Ma question est : comment atteindre les éléments de mon tableau alors ?

  2. #2
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut


    Commence par faire un print_r de l'ensemble de ton tableau, histoire de voir ce qu'il continet vraiment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r $_SESSION ;
    echo '</pre>';
    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]

  3. #3
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    hé bin ...
    il affiche bien ce qu'il y a dans le $_SESSION mais j'ai quand même l'undefenied sur nom_dep sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_SESSION['test_dep']['nom_dep']."<br />");
    , alors que j'ai bien les valeurs de nom_dep

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Qui dit array_push dit clés numériques, le tableau devrait être de la forme :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Array(
        'test_dep' => Array(
            0 => Array(
                'num_dep' => A,
                'nom_dep' => B
            )
            1 => Array(
                'num_dep' => C,
                'nom_dep' => D
            )
            2 => ...
        )
    )
    
    echo $_SESSION['test_dep'][1]['num_dep'];
    Et non :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array(
        'test_dep' => Array(
            'num_dep' => X,
            'nom_dep' => Y
        )
    )
    ou je ne sais quelle autre forme.

  5. #5
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    Citation Envoyé par julp
    Qui dit array_push dit clés numériques, le tableau devrait être de la forme :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Array(
        'test_dep' => Array(
            0 => Array(
                'num_dep' => A,
                'nom_dep' => B
            )
            1 => Array(
                'num_dep' => C,
                'nom_dep' => D
            )
            2 => ...
        )
    )
    
    echo $_SESSION['test_dep'][1]['num_dep'];
    salut,
    oué oué je vois merci j'en prend note...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $nb_commune = count($_SESSION['test_dep']);
    for($i=0;$i<$nb_commune;$i++){
    	echo $_SESSION['test_dep'][$i]['nom_dep']."<br /> ";
    }
    ... je veux mettre dans l'envoie d'un mail , tous les nom_dep et num_dep choisit... et je ne vois vraiment pas comment listé dans un mail cela

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par akara
    ... je veux mettre dans l'envoie d'un mail , tous les nom_dep et num_dep choisit... et je ne vois vraiment pas comment listé dans un mail cela
    Sauf que nous ne sommes pas dans votre tête : difficile de proposer une solution pertinente sans aucune information ...

    Peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $str_nom = $str_num = '';
    if (isset($_SESSION['test_dep']) && is_array($_SESSION['test_dep'])) {
        foreach ($_SESSION['test_dep'] as $v) {
            $str_nom .= (empty($str_nom) ? '' : ', ') . $v['nom_dep'];
            $str_num .= (empty($str_num) ? '' : ', ') . $v['num_dep'];
        }
    }
    var_dump($str_nom);
    var_dump($str_num);
    ?

    Dans votre cas, et si cela vous est possible, une autre organisation de votre tableau test_dep aurait permis de faciliter le code en permettant l'emploi direct de la fonction implode (l'organisation que vous cherchiez au départ à utiliser en vain).

  7. #7
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    Citation Envoyé par julp
    Sauf que nous ne sommes pas dans votre tête : difficile de proposer une solution pertinente sans aucune information ...

    Peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $str_nom = $str_num = '';
    if (isset($_SESSION['test_dep'] && is_array($_SESSION['test_dep'])) {
        foreach ($_SESSION['test_dep'] as $v) {
            $str_nom .= (empty($str_nom) ? '', ', ') $v['nom_dep'];
            $str_num .= (empty($str_num) ? '', ', ') $v['num_dep'];
        }
    }
    var_dump($str_nom);
    var_dump($str_num);
    logique..
    des parses erreur...il manque une parenthèse pour le isset, et
    $str_nom .= (empty($str_nom) ? '', ', ') $v['nom_dep'];
    $str_num .= (empty($str_num) ? '', ', ') $v['num_dep'];
    mais je ne vois pas vraiment ou car je n'utilise jamais cette forme

  8. #8
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Il doit manquer une concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str_nom .= (empty($str_nom) ? '', ', ').$v['nom_dep'];
    $str_num .= (empty($str_num) ? '', ', ').$v['num_dep'];
    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]

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Celira
    Il doit manquer une concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str_nom .= (empty($str_nom) ? '', ', ').$v['nom_dep'];
    $str_num .= (empty($str_num) ? '', ', ').$v['num_dep'];
    S'il n'y avait que ça Je pense les avoir corrigé (faut que j'arrête de poster avant midi ).

  10. #10
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    euh nan plus, toujours parse error

Discussions similaires

  1. [MySQL] Récupérer id dans variable de session
    Par kate59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/02/2009, 00h06
  2. transfert de tableau via variable de session
    Par sbitsch dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2007, 15h54
  3. [VBA-E] récupération selection tableau dans variable
    Par garsdu51 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/02/2007, 08h04
  4. Array dans variables de session
    Par Mengué georges dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/02/2007, 14h21
  5. tableau dans variable de session
    Par ddeee dans le forum ASP
    Réponses: 2
    Dernier message: 20/03/2006, 16h48

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