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 :

Panier:ajout article déjà présent


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut Panier:ajout article déjà présent
    Bonjour à tous,

    je butte sur le problème suivant. J'ai un panier dans lequel j'ajoute des articles lorsque l'utilisateur le demande. Tant que l'article n'est pas encore présent dans mon panier ça va.

    Ce que je voudrais arriver à faire c'est que je parcours mon panier est si il trouve la meme référence d'article il met à jour la quantité (=$ancienne_quantite+$nouvelle_quantité),mais je n'y arrive pas. J'ai fait pour cela une boucle qui parcours mon panier. Si il ne trouve pas l'article dans le panier, il l'ajoute comme un nouvel article.

    J espère que c'est claire? Voici ma fonction:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    function ajout_produit($new_id, $led_id, $quantite)
    	{
    	// => On compte le nbre d'articles différents dans le panier
    	$nb_articles	= count($_SESSION['caddie']['id']);
    	// => Initialisation de la variable retour
    	echo $nb_articles;
    	$ajoute=false;
    	// => Recherche des ref de l'article dans la db
    	$sql_ref=mysql_query("SELECT led_id, led_reference 
                              FROM t_led_led 
                              WHERE led_id='".$led_id."'") 
                              or die("Sélection de la base impossible !");
    	$ref_prod=mysql_fetch_assoc($sql_ref);
    	$ref_prod=$ref_prod['led_reference'];
     
    	// => On verifie si le panier n'est pas vide
       	if($nb_articles=0)
       	{
        array_push($_SESSION['caddie']['id'],$new_id);
        array_push($_SESSION['caddie']['led_id'],$led_id);
        array_push($_SESSION['caddie']['prod'],$ref_prod);
        array_push($_SESSION['caddie']['qt'],$quantite);
        }
        else
        {
        // => On parcoure le panier pour modifier l'article précis
        for ($i =0; $i < $nb_articles; $i ++)
    		{
    		 if($_SESSION['caddie']['prod'][$i]==$ref_prod)
    		 {
    		 echo '<p>DOUBLE TROUVE</p>';
    		 $_SESSION['caddie']['qt'][$i]+=$quantite;
    		 echo $_SESSION['caddie']['qt'][$i];
    		 $ajoute=true;
    		 }
    		}
        }
        if ($ajoute!=true)
    		 {
             array_push($_SESSION['caddie']['id'],$new_id);
             array_push($_SESSION['caddie']['led_id'],$led_id);
             array_push($_SESSION['caddie']['prod'],$ref_prod);
             array_push($_SESSION['caddie']['qt'],$quantite);
             }
     
        }
    Merci à tous pour votre aide

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Points : 275
    Points
    275
    Par défaut
    moi j'aurai fait comme ci dessous
    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
     
    // on ajoute/modifie l'article dans la session avec comme clé l'id de l'article
    if(isset($_SESSION['caddies'][$new_id])){
        // article existant on incrémente la quantité
        $_SESSION['caddies'][$new_id]['qt']++;
    } else {
        // creation d'un article
        $item = array();
        $item['id'] = $new_id;
        $item['led_id'] = $led_id;
        $item['prod'] = $ref_prod;
        $item['qt'] = $quantite;
        // on l'ajoute
        $_SESSION['caddies'][$new_id] = $item;
    }

  3. #3
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Bonjour Helfima,

    merci pour ton aide. J'ai résolu mon problème. C'est un peu compliqué mais pour l'instant je m'en contente. Je verrai plus tard comment améliorer.
    Voici le code si ça peut aider:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    function ajout_produit($new_id, $led_id, $quantite)
    	{
    	// => Initialisation de la variable retour
    	$ajoute=false;
    	// => Recherche des ref de l'article dans la db
    	$sql_ref	= mysql_query("SELECT led_id, led_reference 
                              FROM t_led_led 
                              WHERE led_id='".$led_id."'") 
                              or die("Sélection de la base impossible !");
    	$ref_prod	= mysql_fetch_assoc($sql_ref);
    	$ref_prod	= $ref_prod['led_reference'];
     
    	// => On verifie si le panier n'est pas vide
       	if(empty($_SESSION['caddie']['id']))
       	{
        array_push($_SESSION['caddie']['id'],$new_id);
        array_push($_SESSION['caddie']['led_id'],$led_id);
        array_push($_SESSION['caddie']['prod'],$ref_prod);
        array_push($_SESSION['caddie']['qt'],$quantite);
        $ajoute=true;
        }
        else
        {
    	// => On compte le nbre d'articles différents dans le panier
    	$nb_articles	= count($_SESSION['caddie']['id']);    
    /* 	echo $nb_articles; */
        // => On parcoure le panier pour modifier l'article précis
        for ($i =0; $i < $nb_articles; $i ++)
    		{
    		 if(($_SESSION['caddie']['prod'][$i]==$ref_prod) AND $ajoute!=true )
    		 {
    /* 		 echo '<p>DOUBLE TROUVE</p>'; */
    		 $_SESSION['caddie']['qt'][$i]+=$quantite;
    /* 		 echo $_SESSION['caddie']['qt'][$i]; */
    		 $ajoute=true;
    		 }
    		}
    	if (($ajoute!=true) AND !empty($_SESSION['caddie']['id']))
    	   {
            array_push($_SESSION['caddie']['id'],$new_id);
            array_push($_SESSION['caddie']['led_id'],$led_id);
            array_push($_SESSION['caddie']['prod'],$ref_prod);
            array_push($_SESSION['caddie']['qt'],$quantite);
           }
        }
        }
    Encore merci à toi !

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

Discussions similaires

  1. [MCD] Gestion d'un panier d'articles
    Par Rizen dans le forum Schéma
    Réponses: 20
    Dernier message: 20/10/2018, 13h36
  2. [Joomla!] Ajouter article via composant
    Par lightalex01 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 28/05/2013, 17h52
  3. [Joomla!] Ajout article personnalisé Joomla
    Par ilimarok dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/12/2011, 18h01
  4. Ajouter article dans une autre page
    Par lol007 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2009, 20h49

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