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

PHP & Base de données Discussion :

panier et commande d'achat [MySQL]


Sujet :

PHP & Base de données

  1. #61
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    Lors de la validation du panier (c'est à dire passage à la commande) je dois décrémenter la quantité de chaque produit, Comment le faire, j'ai fais un essai de code mais j'ai pas su comment décrémenter la quantité(valeur de $nvquantite).
    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
     
    // Récupération des données
    $affiche = $bdd->query('SELECT p.quantite, f.titre, f.prix
    FROM panier p
    INNER JOIN cd_film f ON p.id_produit = f.id_film');
     
    // fetchAll : permet de récupérer tous les éléments d'un seul coup
    $panier = $affiche->fetchALL(PDO::FETCH_ASSOC);
    // décrémentation de la quantité de chaque produit
    foreach($panier as $affiche_panier)
    {
    $req = $bdd->prepare('UPDATE cd_film SET quantite = :nvquantite WHERE id_film = :id_film');
    $req->bindValue(':nvquantite', $nvquantite, PDO::PARAM_INT); // valeur de $nvquantite??
    $req->bindValue(':id_film', $affiche_panier['id_produit'], PDO::PARAM_STR);
    $req->execute();
    }

  2. #62
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Je ne vois pas trop ce que tu souhaites faire, et surtout à quel moment.

    En général ce n'est pas ainsi que ça se fait.
    En général (toujours), on ne décrémente pas au niveau du panier pour la simple raison qu'à ce moment il n'y a pas eu d'achat, de paiement, le client n'est passé à la caisse (si on peu dire).
    Si on souhaite le faire quand même c'est un véritable casse tête.

    Le décompte du stock peu avoir lieu une fois que le client a payé la commande, c'est d'ailleurs un des points les plus délicat d'un site e-commerce.
    Cependant, beaucoup de boutiques ne font pas de décompte à cette étape cause de cela, en faite ils font ce qu'on appel de la vente hors stock.

    La gestion du stock se fera sur un autre logiciel après importation des données (des commandes) : données de la boutique vers le logiciel de compta/gestion de stock.

    Tout cela c'est juste pour information, comme toujours.


    Si dans cet exercice on demande de faire un décompte du stock lors de la commande (ici une simulation), alors il faut faire une soustraction entre quantité en stock et la quantité commandée du panier du client identifié :
    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
    // Récupération des données du panier du client identifié
    $affiche = $bdd->prepare('SELECT p.quantite, f.titre, f.prix
    FROM panier p
    INNER JOIN cd_film f ON p.id_produit = f.id_film
    WHERE p.id_client = :id_client');
    $affiche->bindValue(':id_client', (int)$_SESSION['id_client'], PDO::PARAM_INT);
    $affiche->execute();
     
    // fetchAll : permet de récupérer tous les éléments d'un seul coup
    $panier = $affiche->fetchALL(PDO::FETCH_ASSOC);
     
    // Décompte du stock de chaque produit (quantité en stock - quantité commandée)
    foreach($panier as $affiche_panier)
    {
        $req = $bdd->prepare('UPDATE cd_film SET quantite = (quantite - :quantite_cmd) WHERE id_film = :id_film');
        $req->bindValue(':quantite_cmd', (int)$affiche_panier['quantite'], PDO::PARAM_INT);
        $req->bindValue(':id_film', (int)$affiche_panier['id_produit'], PDO::PARAM_INT);
        $req->execute();
    }
    (Fait en sorte de mettre une quantité assez élevée au niveau des produits (films), sinon au décompte tu risque d'avoir un nombre négatif, ceci pourrait être vu comme un défaut, voire un bug).

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/10/2011, 11h27
  2. Onglet importation dans commande d'achat
    Par beuzy dans le forum SAP
    Réponses: 0
    Dernier message: 19/07/2011, 09h46
  3. MM - Commande d'achat - tables de prix
    Par Kiefer_S dans le forum SAP
    Réponses: 1
    Dernier message: 16/06/2010, 10h24
  4. LMSW, CATT ou programme pour commande d'achat
    Par kitty2006 dans le forum SAP
    Réponses: 4
    Dernier message: 30/10/2009, 05h07
  5. smartforms pour commande d'achat
    Par kitty2006 dans le forum SAP
    Réponses: 0
    Dernier message: 05/05/2009, 08h59

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