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 :

Récupérer resultat Foreach dans une session tableau


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Récupérer resultat Foreach dans une session tableau
    Salut tout le monde;

    bon voila j'ai déjà travaillée avec des variables de session mais jamais essayer de les utiliser autant que tableau ,

    la syntaxe si elle existe je ne la connais pas !! donc ce que j'ai faite est comme suite


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $i=0;
    foreach($_POST['souscase'] AS $value)
    {
    $i++;
    $_SESSION['$i']['st4']['sou']=$value; 
    }
    $_SESSION['st4']['ses']=$i;
    $_SESSION['$i']['st4']['sou']=$value; normalement ca prend $_SESSION['1']['st4']['sou'] puis $_SESSION['2']['st4']['sou'].....ect donc chaque var a un id different

    $_SESSION['st4']['ses']=$i; pour garder le nombre d'enregistrement existant

    exemple:

    102
    103
    206
    207

    dans ma tit tête la logique disait qu'on fessons par la suite dans une autre pages cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $i=$_SESSION['st4']['ses'];
     
    while($i<>0)
    {
    $affiche=$_SESSION['$i']['st4']['sou'];
    echo $affiche;
    $i=$i-1;
    }
    ça devait me récupérer la liste et me l'afficher , ça ne marche pas

    ÇA ME Récupère que le dernier enregistrement

    resultat
    207
    207
    207
    207

    can you help me please

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Il y a plusieurs façon de générer des chaînes de carcatères en php, avec des intérêts différents. On peux par exemple utiliser des guillemets doubles (") ou des guillemets simples ('). Les chaînes entourées par des guillemets doubles sont analysées par l'interpréteur php, et les variables sont remplacées par leur valeur, et des caractères peuvent être ajoutés par leur code (ex : \n est un retour à la ligne). Si on utilise les guillemets simples ('), la chaîne n'est pas analysée, mais récupérée telle quelle par l'interpréteur. C'est un peu plus rapide (une étape d'analyse en moins), et ça évite d'avoir à échapper certains caractères ($, ou plus simplement ", utilisé par exemple en HTML).

    Donc dans ton code, avec $_SESSION['$i'], $i n'est pas remplacé par sa valeur, mais pris tel quel. A chaque itération, tu remplace donc la valeur contenue à l'index '$i' du tableau.

    Il faut plutôt que tu fasses comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $i=0;
    foreach($_POST['souscase'] AS $value)
    {
        $i++;
        $_SESSION[$i]['st4']['sou'] = $value; 
    }
    $_SESSION['st4']['ses'] = $i;
    D'autre part, tu n'est pas obligé de conserver le nombre d'éléments ajoutés à ton tableau, mais tu peux le parcourir avec une boucle foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($_SESSION as $key, $value)
    {
        echo 'Clé : '.$key.', contenu : '.$value['st4']['sou'];
    }

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour;

    merci Eusebe pour ta réponse mais malheureusement ça ne marche pas enfin presque car la boucle foreach afficher des message d'erreur par la suite elle afficher le resultat correctement

    Citation Envoyé par Eusebe Voir le message
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($_SESSION as $key, $value)
    {
        echo 'Clé : '.$key.', contenu : '.$value['st4']['sou'];
    }
    j'ai trouver un moyen très simple c'est de récupere mon tableau dans une variable de session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['array']['st4']['sou']=$_POST['souscase'];
    par la suit dans ma dernière pages ou je traite toute mes variables de session pour inserer dans la base de donnée je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $kaho=$_SESSION['array']['st4']['sou'];
     
    foreach($kaho AS $value)
    {
    echo"$value<br>";
    }
    et ça m'affiche le tout correctement

    c'est très simple mais bon j'ai pas pue trouvé du premier coup

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

Discussions similaires

  1. Placer et récupérer un HashMap dans une session
    Par Nicobp dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 26/01/2013, 16h40
  2. Réponses: 2
    Dernier message: 27/02/2008, 13h32
  3. Récupérer l'ID dans une session
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 01/11/2007, 22h57
  4. Passage de tableau à deux dimensions dans une session
    Par keumlebarbare dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 28/11/2006, 18h42
  5. Tableau dans une session
    Par nicoreims dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2006, 21h20

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