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 : éviter le doublon d'un même article


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut Panier : éviter le doublon d'un même article
    Bonjour tout le monde

    J'espere que je post au bon endroit, vu que le panier est aussi une histoire de session.

    Alors, vla, j'ai un petit probleme avec un panier virtuel. Il fonctionne , c'est déjà ça, mais je n'arrive pas a faire en sorte qu'un article qui se trouve déjà dans le panier ne soit pas doublé, mais plutot rajouter en quantité.
    J'ai éssayé déjà plusieur script que j'ai trouver en cherchant un peu et en l'adaptant, mais ça n'a pas fonctionner.

    Voici le code qui ajoute l'article au panier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form action="panier.php?reference=<?php echo $row_rsProduit1['reference']; ?>&amp;prix=<?php echo $row_rsProduit1['prix']; ?>&amp;ajoutPanier=AJOUTER" method="post" name="form1" id="form1">
                                <input name="quantite" type="text" id="quantite" value="1" size="4" />
                                <input name="submit1" type="image" id="submit1"  value="Ajouter" src="images/boutons_pictos/bouton_ajouter.gif"/>
                            </form>
    et le script du panier qui ajoute l'article au panier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ($ajoutPanier=="AJOUTER")
    {
    			$reference=$_GET['reference'];
    			$nb=$_POST['quantite']; //par defaut la quantité = 1, remplacé par quantite
    			$prix=$_GET['prix'];
    			$totalarticle= $prix * $nb; //c'est moi qui l'est rajouté
    			$liste[]=array($reference,$nb,$prix,$prix,$totalarticle); // j'ai rajouté $totalarticle
    			$_SESSION['liste']=$liste; 
    			//ajoute un article à la liste
    }
    Si il manque une info n'hésité pas.

    Sayes1

  2. #2
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Avant de l'ajouter, test si la référence existe ou pas.
    Si elle existe alors tu augment la quantité.

    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
    if ($ajoutPanier=="AJOUTER")
    {
          if (ref existe pas )
          {
    			$reference=$_GET['reference'];
    			$nb=$_POST['quantite']; //par defaut la quantité = 1, remplacé par quantite
    			$prix=$_GET['prix'];
    			$totalarticle= $prix * $nb; //c'est moi qui l'est rajouté
    			$liste[]=array($reference,$nb,$prix,$prix,$totalarticle); // j'ai rajouté $totalarticle
    			$_SESSION['liste']=$liste; 
    			//ajoute un article à la liste
           }
           else
           {
                 // augmenter quantité
            }
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    Salut,

    j'avais essayé avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $positionProduit = array_search($_GET['reference'],  $_SESSION['liste']['reference']);
     
      if ($positionProduit !== false)
      {
       $_SESSION['liste']['nb'][$positionProduit] += $_POST['quantite'];
      }
    Mais php me disait qu'il y avait une erreur en 2eme argument

  4. #4
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Essaie plutot ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $positionProduit = array_search($_GET['reference'],  $_SESSION['liste'][0]);

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    juste une remarque en faisant ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['liste']=$liste;
    tu n'ajoute pas un produit a $_SESSION['liste'] tu remplaces celui qui était deja

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    Citation Envoyé par boo64 Voir le message
    juste une remarque en faisant ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['liste']=$liste;
    tu n'ajoute pas un produit a $_SESSION['liste'] tu remplaces celui qui était deja

    Je le met où ? dans la fonction array_search ou dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if ($positionProduit !== false)
    ?

    Parceque je l'ai mis dans ce dernier, mais il m'indique toujours la même erreur, et quand je rajoute un 2 eme article identique, il a été quand meme doublé

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    j'ai fait ça :

    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
     
    if ($ajoutPanier=="AJOUTER")
     
    $positionProduit = array_search($_GET['reference'],  $_SESSION['liste'][0]);
     
    {
      if ($positionProduit !== false)
      {
       $_SESSION['liste']['nb'][$positionProduit] += $_POST['quantite'];
      }
      else
      {			$reference=$_GET['reference'];
    			$nb=$_POST['quantite']; //par defaut la quantité = 1, remplacé par quantite
    			$prix=$_GET['prix'];
    			$totalarticle= $prix * $nb; //c'est moi qui l'est rajouté
    			$liste[]=array($reference,$nb,$prix,$prix,$totalarticle); // j'ai rajouté $totalarticle
    			$_SESSION['liste']=$liste; 
    			//ajoute un article à la liste
    	}
    }
    et php me renvoit l'erreur suivante :
    Warning: array_search() [function.array-search]: Wrong datatype for second argument in C:\wamp\www\site_boutique_aua\panier.php on line 40

    Le script sur lequel je me base pour éviter le doublon vient de :

Discussions similaires

  1. Clé primaire composée de champs d'une même table : éviter les doublons
    Par Tristan Zwingelstein dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/02/2013, 05h23
  2. [Toutes versions] Condition sur 2 champs d'une même table pour éviter des doublons
    Par btks59 dans le forum Modélisation
    Réponses: 6
    Dernier message: 23/05/2011, 09h48
  3. éviter les doublons requete insertion
    Par warraf dans le forum Access
    Réponses: 5
    Dernier message: 29/11/2005, 14h53
  4. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 13h18
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 20h37

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