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 :

Problèmes de panier


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut Problèmes de panier
    Bonjour,

    J'ai suivis votre tuto pour la création de paniers:
    http://jcrozier.developpez.com/articles/web/panier/
    J'ai adapté celon mes besoins mais lorsque j'ai mon panier rempli je ne sais tout simplement pas comment envoyer tout ca dans ma bdd..

    Je penses qu'il faut utiliser mes variables de session?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION['panier']=array();
      $_SESSION['panier']['id_prod'] = array();
      $_SESSION['panier']['libelleProduit'] = array();
      $_SESSION['panier']['qteProduit'] = array();      
      $_SESSION['panier']['prixProduit'] = array();
    Faut il utiliser foreach? comment?

    Ma bdd est 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
    +----------------+              +----------------------+              +----------------+               +-------------+
    | produit        |              | ligne_commande       |              | commande       |               | client      |
    +----------------+ 1:n      1:1 +----------------------+ 1:1      1:n +----------------+ 1:1       1:n +-------------+
    | nump        PK |--------------| nump          PK FK  |--------------| numcdecl    PK |---------------| numcl    PK |
    | nomp           |              | numcdecl      PK FK  |              | numclcde    FK |               | nomcl       |
    | pvp            |              | qte                  |              | cdestatut      |               | promcl      |
    | pap            |              +----------------------+              | cdedate        |               | adrscl      |
    | qtestockp      |                                                    +----------------+               | cpcl        |
    | qteminp        |              +---------------+                                                      | villecl     |
    | qtemaxp        |1:1      1:1  | categcde      |                     +----------------+               | telcl       |
    | id_catcdep  FK |--------------+---------------+                     | categcli       |               | mailcl      |
    +----------------+              | id_catcde  PK |                     +----------------+ 1:n       1:1 | categcl  FK |
                                    | categorie     |                     | Codecategclt PK|---------------| typcl       |
                                    +---------------+                     | libcateclt     |               | datecreacl  |
                                                                          +----------------+               +-------------+
    En fait on m'a dit qu'il fallait faire une requete sql pour faire une nouvelle commande dans la table commande puis récupérer le code commande et remplir une autre requete dans ligne_commande avec improbe. :S

    Je ne sais pas faire mais je veux comprendre et y arriver.

    Voilà :S

    Merci
    Bonne journée

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Vu ton MCD je dirai qu'il faut que tu commence par créer un numéro de commande que tu inséré dans ta table avec une date et un "numclcde" (j'imagine que c'est ta clef pour lier sur la table "lignes_commandes")

    Pour chaque lignes de commandes tu insère son numéro de produit et sa quantité dans la table ligne_commande et le même "numclcde" que dans la table commande précédente

    LE reste n'a pas l'air attrait a la commande et au panier en eux même mais plutôt aux stockes et aux infos clients!

    Je ne fais juste qu'interpréter ton MCD pas plus jusque la !

    Pour parcourir ton panier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach ($_SESSION['panier'] as $produit){
     
     echo $produit['id_prod'];
     echo $produit['libelleProduit'];
     echo $produit['qteProduit'];
     echo $produit['prixProduit'];
    }
    J'espère avoir dégrossit un peu le cote obscur de ton probleme !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    J'ai compris la logique.;(je penses ^^)

    Pour le foreach:
    C'est normal que les echo n'affichent rien?
    pourtant j'ai des articles dans mon panier :S

    Et comment on utilise improbe? j'ai lu des manuels sur le net mais je ne sais pas comment m'en servir?

    Merci beaucoup pour la réponse plus que rapide et constructive

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    fait un


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<pre>".var_dump($_SESSION['panier'])."</pre>";
    pour voir le contenu de ton panier en session

    En ce qui concerne improbe je ne sais pas ce que c'est .....je laisse ma place sur ce sujet lol
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Je viens de me rendre compte que tu es l'auteur du tuto ^^
    Je suis bien tombé.

    Le contenu de on panier en session est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(4) { ["id_prod"]=>  array(2) { [0]=>  string(4) "je01" [1]=>  string(4) "ch03" } ["libelleProduit"]=>  array(2) { [0]=>  string(22) "jean coupe droite bleu" [1]=>  string(17) "chaussures noires" } ["qteProduit"]=>  array(2) { [0]=>  int(1) [1]=>  int(1) } ["prixProduit"]=>  array(2) { [0]=>  float(109) [1]=>  float(80) } }
    Quand j'ai parcouru le panier avec foreach comment je fais pour envoyer tout ca dans la requete quand il y a plusieurs produits?
    Et comment savoir ce qu'il y a dans $produit['id_prod'] ? de la fonction foreach que tu m'as passé?

    Pour créé une nouvelle commande ca va, mais comment récupéré son numéro de commande de commande pour le mettre dans la requete d'insertion de ligne_commande?

    Je dois vraiment être un cas soc :s

    Merci de m'aider c'est sympa j'espère que tu ne t'arraches pas trop les cheveux

    Jerem

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Citation Envoyé par jeremdu94 Voir le message
    Je viens de me rendre compte que tu es l'auteur du tuto ^^
    Moi aussi

    J'ai dis une connerie , avec le foreach c'est beaucoup plus complique j'avais zappe qu'on était sur un tableau multidimensionnel lol

    Donc , pour parcourir tu peux repredre ce que j'ai fais pour l'affichage du panier a savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $nbArticles=count($_SESSION['panier']['libelleProduit']);
    for ($i=0 ;$i < $nbArticles ; $i++)
       {
     
    echo htmlspecialchars($_SESSION['panier']['id_prod'][$i])."</ br>";
    echo htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ br>";
    echo htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."</ br>";
    echo htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</ br>";
     
       }
    For example ...ensuite

    Citation Envoyé par jeremdu94 Voir le message
    Et comment savoir ce qu'il y a dans $produit['id_prod'] ?
    Code juste au dessus

    Citation Envoyé par jeremdu94 Voir le message
    Pour créé une nouvelle commande ca va, mais comment récupéré son numéro de commande de commande pour le mettre dans la requete d'insertion de ligne_commande?
    Si tu crée une nouvelle commande tu vas lui créer un numéro n'est ce pas ? tu le reutilise dans la table ligne !
    Citation Envoyé par jeremdu94 Voir le message
    Je dois vraiment être un cas soc :s
    Pas tellement lol
    Citation Envoyé par jeremdu94 Voir le message
    Merci de m'aider c'est sympa j'espère que tu ne t'arraches pas trop les cheveux
    C'est mon job ici looool et ça me fais plaisir !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Euh,
    J'ai fais quelque chose grâce à toi qui donne un début de résultat mais il reste juste un léger soucis..

    Je l'ai fais avant votre réponse ce qui explique la boucle foreach mais avec votre boucle for ca fait pareil donc bon :/ c'est dommage

    Voici le code (j'ai pas fini de commenté, désolé)

    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
    <?php
     
    $date=date("Y-m-d");
     
    $requete1="INSERT INTO commande (numero_cde,statut,datecdecl,num_cli_cde) VALUES ('','En attente','$date','$numero')"; //ajout de la commande dans la table commande
    mysql_query($requete1) or die ("Requête1 impossible".mysql_error());//exécution de la requête
     
     
     
    foreach( $_SESSION['panier'] as $value ) {
     
      $id=$value['id_prod'];
      $qtite=$value['qteProduit']
    } 
     
    $num_cde=mysql_insert_id();
     
    $aInsert[]="('".$id."','".$num_cde."',".$qtite.")"; 
     
     
    $sInsert = implode(',',$aInsert);
     
    $requete2 = "INSERT INTO ligne_commande (num_prod, num_cde, qte_cde) VALUES". $sInsert; //ajout des articles et quantité dans la table ligne_commande
    mysql_query($requete2) or die ("Requête2 impossible".mysql_error());//exécution de la requête
     
    ?>
    Il enregistre bien dans les deux tables avec le même numéro de commande, le numéro client c'est bon aussi mais le problème c'est qu'il enregistre qu'un seul article: le dernier de la liste du panier.
    Il l'enregistre bien a part ca avec la quantité et tout.
    Donc comment faire pour enregistrer tout les articles?

    Et sinon est ce que mon code est correct? je me suis aidé de vos réponses.

    Merci beaucoup vous m'aidez beaucoup !

Discussions similaires

  1. [PrestaShop] Probléme de panier qui disparait
    Par sizedbaloo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 14/01/2014, 12h39
  2. problème de panier
    Par ph_anrys dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2011, 16h28
  3. Problème de Panier
    Par amour076 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2010, 16h58
  4. session problème quantité panier
    Par kitty2006 dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2006, 19h24
  5. Problème de panier virtuel
    Par zourk dans le forum Langage
    Réponses: 1
    Dernier message: 29/08/2006, 13h41

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