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 :

Tableau en session


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 156
    Par défaut Tableau en session
    Bonjour, je ne connais pas encore bien les sessions sous php, et j'aimerai savoir comment créer un tableau stocké en session, pour pouvoir y ajouter 2 éléments (un numero et un text qui provient de la base de donnée), et la possibilité de les supprimer ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 350
    Billets dans le blog
    17
    Par défaut
    Et bien il suffit tout simplement d'affecter ton tableau à $_SESSION.
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['user'] = array('id' => 123, 'nickname' => 'leroidje') ;
    Ensuite pour y accéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SESSION['user']['nickname'] ;
    Pour effacer l'entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['user']) ;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 156
    Par défaut
    Est ce possible de faire plusieur enregistrement, et ensuite les affiché avec une boucle sous forme de fonction ?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 350
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par leroidje
    Est ce possible de faire plusieur enregistrement, et ensuite les affiché avec une boucle sous forme de fonction ?
    Bien sûr. $_SESSION est avant tout un TABLEAU.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_SESSION['users'] = array( ) ;
    $_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
    $_SESSION['users'][ ] = array('id' => 234, 'nickname' => 'Sophie') ;
    ...
    Ensuite tu peux boucler sur $_SESSION['users'], ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ( $_SESSION['users'] as $user ) {
        echo "Pseudo : {$user['nickname']} ({$user['id']})\r\n" ;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 156
    Par défaut
    Comment faire pour effacer une seule entrée ? (par ex la 2eme)
    Si j'ai bien compri
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unset($_SESSION['users'][234]);

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 350
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par leroidje
    Comment faire pour effacer une seule entrée ? (par ex la 2eme)
    Si j'ai bien compri
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unset($_SESSION['users'][234]);
    Non, là ce serait si on avait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['users'][234] = array('id' => 234, 'nickname' => 'Sophie') ;
    Donc le cas échéant pour la 2nde entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['users'][1]) ;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 156
    Par défaut
    Une dernière question:
    comment savoir si par exemple cette ligne est deja dans le tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
    si cette ligne n'y ai pas alor je l'insert sinon j'ecris un message

    je suppose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(!isset(????))
    {
         // ajouter ds $_SESSION
    }
    else
    {
        // echo message
    }

  8. #8
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    if($_SESSIONS['users["id"]'] == 234)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 156
    Par défaut
    Ca ne marche pas....j'ai cette erreur:
    Notice: Undefined index: gestion["id"] in......

  10. #10
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 350
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par leroidje
    Une dernière question:
    comment savoir si par exemple cette ligne est deja dans le tableau ?
    Si tu suis ce modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
    Alors il faudra boucler sur $_SESSION['users'] et comparer chaque id

    Par contre si tu suis ce modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['users'][123] = array('id' => 123, 'nickname' => 'Julien') ;
    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( isset($_SESSION['users'][(int)$id]) ) { ...
    (le (int) est important car si $id n'est pas un entier ça peut poser pb)

Discussions similaires

  1. Comment enregistrer un tableau en session
    Par Snyfer dans le forum Langage
    Réponses: 4
    Dernier message: 27/03/2007, 11h48
  2. Tableau et session !
    Par GYK dans le forum Langage
    Réponses: 23
    Dernier message: 15/03/2007, 10h12
  3. Pb de passage de tableau en session
    Par taki_38 dans le forum Langage
    Réponses: 3
    Dernier message: 12/07/2006, 12h14
  4. Réponses: 21
    Dernier message: 28/02/2006, 15h23
  5. Réponses: 16
    Dernier message: 02/12/2005, 10h39

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