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 :

Array dans des var de sessions? array_push ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut Array dans des var de sessions? array_push ?
    Hello tous,

    je suis face un problème qui dépasse une peu ma compréhension en programmation. (encore !)


    pour mon script, j'initialise donc une session.
    site avec plusieurs articles, pour chaque article plusieurs objets, et pour chaque objet, plusieurs types.
    un visiteur peu agir sur plusieurs pages d'articles et donc plusieurs objets ayant une origine différente dans la même session.

    j'ai donc commencé à créer des tableaux dans ma session, de manière à ce qu'il y ai 1 tableau par article qui comporte 1 tableau par objet et j'insère ce tableau principal dans ma var de session.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $contenuSession = array();
    $contenuSession['idA'] = array();
    $contenuSession['idA']['idObjetEnCours'] = array();
    $contenuSession['idA']['idObjetEnCours']['idTypesVote'] = array();
    $contenuSession['idA'] = $_GET['idarticle'];
     
    $_SESSION['articleUser'] = $contenuSession; // changera en fonction de la page appelée dans le site. si un article a déjà été visité, il ne sera pas supprimé de la session, mais concaténé.
    déjà, lorsque j'affiche un print_r($_SESSION['articleUser'] dans mon index qui incude(session.php) je n'ai que la valeur de $_GET['article'] , aucune autre valeur de session n'est crée. je ne comprend pas pourquoi.

    Comment je peux injecter le contenu d'un tableau dans cet array global ?
    pourquoi lorsque je fais le $_SESSION['articleVote'] = $contenuSession;
    rien ne s'ajoute ?

    j'ai beau farfouiller, je ne vois pas...

    Merci de votre aide
    ^^

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenuSession['idA'] = $_GET['idarticle'];
    ça écrase ce que t'as mis avant

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenuSession['idA'] = $_GET['idarticle'];
    ça écrase ce que t'as mis avant
    hello stealth35,
    ca écrase toutes les autres lignes ?
    pourtant ce sont des tableaux différents !

    comment faire pour contourner le problème

    j'ai le principe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    		if ($contenuSession['idA']['idObjetEnCours']['id'] == $idObject)
    			$arrayIdType[] = array_push($contenuSession['idA']['idObjetEnCours']['idTypesVote'], array($idType => 1));//, ); 
     
    		else {
    			$arrayIdType = array();
    			$contenuSession['idA']['idObjetEnCours'] = array_push($contenuSession['idA']['idObjetEnCours'], $idObject; 
    			$contenuSession['idA'] = array_push($contenuSession['idA'], array($contenuSession['idA']['idObjetEnCours'] => $idObject));
    			$arrayIdType[] = array_push($arrayIdType, array($idType => 1)); 			
    		}
     
    			$contenuSession['idA']['idObjetEnCours']['idTypesVote'] = $arrayIdType; // id's du type
    			$_SESSION['articleVote'] = $contenuSession;
    mais je viens de me rendre compte que pour le 1er if, ca ne va pas, déjà parceque je compare un tableau avec une valeur, mais aussi parceque je dois pouvoir parcourir les résultats de ce tableau pour vérifier si le idObject existe déjà, si il existe déjà alors j'ajoute le idType et sa valeur(1), sinon je le créée et ajoute l'idType et sa valeur...

    je ne sais pas comment réaliser cela ...
    et aussi pourquoi $_SESSION[mavar][mavar2] est écrasé par $_SESSION[mavarrX] ?

    merci de ton aide.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est normale
    c'est comme si tu faisais

    montre l'array que tu voudrais avoir au final

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut
    structure de session du genre :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    array
      'idA' => "monidArticle'
        array
          'idObjetEnCours' => 'monidObjet'
            array
              'totalTypes' => array
                      'monidtype' => savaleur
                      'monidtype2' => savaleur
                       'monidtype3' => savaleur
             'idObjetEnCours' => 'monidObjet2'
            array
              'totalTypes' => array
                      'monidtype' => savaleur
                      'monidtype2' => savaleur
                       'monidtype3' => savaleur
     'idA' => "monidArticle'
        array
          'idObjetEnCours' => 'monidObjet'
            array
              'totalTypes' => array
                      'monidtype' => savaleur
                      'monidtype2' => savaleur
                       'monidtype3' => savaleur
             'idObjetEnCours' => 'monidObjet2'
            array
              'totalTypes' => array
                      'monidtype' => savaleur
                      'monidtype2' => savaleur
                       'monidtype3' => savaleur
    de manière à pouvoir savoir partout sur le site là où l'utilisateur a déjà cliqué .
    car je lui rappelle qu'il a oublié X type dans N Objet pour que ce soi complété et comptabilisé par ex.

    merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu ne peux pas avoir 2 clés avec le même nom

Discussions similaires

  1. [Tableaux] Insérer des arrays dans des arrays
    Par DJ Caësar 9114 dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2009, 13h03
  2. encapsulation d'objets dans des sessions
    Par Steph_SOUMIER dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 10h44
  3. Réponses: 3
    Dernier message: 15/06/2006, 15h58
  4. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  5. Réponses: 3
    Dernier message: 05/08/2005, 19h34

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