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 :

Session et Panier avec plusieurs articles


Sujet :

Langage PHP

  1. #1
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par d�faut Session et Panier avec plusieurs articles
    Bonsoir � tous !

    Je travail sur la cr�ation d'un syst�me de panier pour mon site marchand gr�ce aux variables de session.

    Lors de l'ajout d'un article au panier, j'enregistre l'ID de l'article dans une variable de session avec l'id de l'article comme nom et la quantit� command� comme valeur.

    jusqu'� l� pas de probl�me.

    Seulement lorsque je veux afficher mon panier, comment puis je afficher l'article contenu dans ma session sachant que je ne peux pas deviner son ID ??
    Parce que si j'ai bien compris, on peut retrouver la valeur d'une variable de session en l'appelant, mais ici on ne connaitra pas le nom a l'avance, vu que on ne sait pas quels articles va choisir le client, et je ne vais pas faire 200 requ�tes pour trouver les variables qui sont enregistr�es dans la session..

    Alors peut-�tre qu'on peu lister les variables de session qui ont �t� enregistr�s ??

    Je m'explique j'ai plus de 200 produits que j'affiche dynamiquement gr�ce a une BDD mysql.
    Ils portent tous un Id diff�rent, ce qui est logique.

    Ce que je veux arriver a faire, c'est de pouvoir lister les diff�rent (articles (donc les ID) qui ont �t� enregistr�s en tant que variable de SESSION.
    Ce qui donnerai alors le contenu du panier.

    Pouvez vous me donner une solution svp??

  2. #2
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    C'est d�bile d'utiliser comme index dans la variable $_SESSION un id que tu veux retrouver. $_SESSION est utisable comme presque n'importe quelle variable (ptet pas pour les ressources) donc tu fais par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    $_SESSION['panier'] = array();
    $_SESSION['panier'][$id] = $val;
    foreach($panier as $id => $val)
    {
        echo $id . ' : ' . $val;
    }

  3. #3
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par d�faut
    Ca marche, mais seulement pour un produit alors ?

    J'ai test� ton script comme ceci :

    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
    <?php
    session_start();
     
    $id='1432';  //id du produit
    $val='5'; // quantité commandé
     
    $_SESSION['$id'] = '$val'; //enregistrement sur la session
     
    $_SESSION['panier'] = array();
    $_SESSION['panier'][$id] = $val;
    foreach($panier as $id => $val)
    {
        echo $id . ' : ' . $val;
    }
    ?>
    ce qui m'affiche bien

    1432 : 5
    ok� c'est super mais si maintenant j'enregistre un deuxi�me produit, et bien il va forcemetn remplacer la valeur de $id et $var

    Tu comprend mon soucis ?

  4. #4
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    Non capitaine, je ne comprends pas.
    Deux articles ont des ids diff�rents (c'est le principe des ids) donc tu ne risques pas d'�craser l'ancienne valeur puisque tu ajoute un �l�ment dans le tableau � une cl� diff�rent
    Et si �a te stresse les cl�s rajoute les �l�ments au tableau avec $_SESSION['panierIds'][] et $_SESSION['panierValeurs'][] (parcours avec un for classique) : �a alloue le prochain index libre.

  5. #5
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par d�faut
    je te remerci de ton aide pr�cieuse et du temps que tu m'accordes, mais l� je butte, et je crois que mon code n'est pas correct, le must serais que tu puisse me faire un exemple simple.

    Car l� dans ton code, je d�finit la variable plus haut et l'enregistre sur la session, mais si je fais la m�me chose sur une 2�me page avec des valeurs diff�rentes pour la variable et bien ca ne m'affichera pas les 2 mais seulement celle que j'ai d�fini sur cette 2�me page, et si je vais sur une troisi�me page o� l� il n'y a que le code que tu 'mas donn� ca ne m'affiche que les " : "


    A mon avis je n'utilise pas la bonne m�thode pour l'enregistrement de ma variable sur la session

  6. #6
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    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
    <?php
    session_start();
     
    $id='1432';  //id du produit, pourrait être un nombre
    $val='5'; // quantité commandée
     
    // La ligne suivante remet le tableau à zéro, on ne l'utilise que si il n'existe pas
    if(!isset($_SESSION['panier']))
        $_SESSION['panier'] = array(); 
     
    // ajout d'un élément
    $_SESSION['panier'][$id] = $val;
     
    // ajout d'un autre, qui peut se faire sur un autre page
    $_SESSION['panier']['schmurps'] = 2.5;
     
    foreach($panier as $id => $val)
    {
        echo $id . ' : ' . $val;
    }
     
    ?>
    Ton histoire de ":" solitaire est bizzare, remet un ptit coup le tableau � z�ro il doit contenir des valeurs suspicieuses.

  7. #7
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par d�faut
    Super j'ai compris et �a marche nikel !!

    Merci encore !

    Maintenant une d�rniere chose,

    J'aimerais utiliser la liste cr�� pour enregistrer une commande dans ma BDD lors de l'envoi du formulaire de paiement

    Je connais la requ�te � faire (je cr�� une entr�e dans la table 'commande' et j'attribue $id et $val au champs respectifs,

    seulement ma requ�te va prendre qu'une seul ligne sur toute la liste des produits, ou il y aura m�me des erreurs ?


    Alors si je poste juste '$panier' dans un champ de ma TABLE, ceci va t'il me poster toute la liste des produits ?

    EDIT: j'ai test pour panier et il me renvoi ca valeur de base donc pas bon

    il faudrait que je puisse definir une variable qui englobe tout le tableau g�n�r�, comme ca je pourrais envoyer le contenu de cette variable dans ma BDD

  8. #8
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    La plus belle solution est : au moment de sauvegarder dans la bdd, tu parcours le tableau pour g�n�rer une requ�te en mettant plusieurs VALUES( ... ) d'affil�e apr�s un m�me INSERT INTO.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MySQL] Ajout au panier avec plusieurs tables
    Par Benben1337 dans le forum PHP & Base de donn�es
    R�ponses: 5
    Dernier message: 20/04/2014, 15h48
  2. panier avec plusieur article a paypal
    Par kate59 dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 05/01/2012, 15h08
  3. SetExpressCheckout avec plusieurs articles
    Par kate59 dans le forum E-Commerce
    R�ponses: 0
    Dernier message: 03/01/2012, 17h19
  4. [PHP 5.0] panier en session avec plusieurs option par article
    Par saperlipopeye dans le forum Langage
    R�ponses: 14
    Dernier message: 16/03/2010, 10h21

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