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 transfert de variable [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Panier et transfert de variable
    Bonjour,

    Encore un problème, cette fois-ci, ce n'est plus sur le panier, mais sur la page suivante qui insère les données dans ma BDD.

    Code du panier :
    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
    48
    49
    50
    51
    52
    53
    54
    <?
     
    if (creationPanier())
    {
    $nbArticles=count($_SESSION['panier']['Reference']);
      if ($nbArticles <= 0)
       echo "<tr><td><font face='arial' size='2' color='#000066'>Votre panier est vide </font></ td></tr>";
      else
      {
       for ($i=0 ;$i < $nbArticles ; $i++)
       {
     
    $prod="SELECT * FROM Produit WHERE Reference=".$_SESSION['panier']['Reference'][$i]."";
     
    $res_prod=mysql_query($prod)
         or die (mysql_error());
     
     while ($data = mysql_fetch_assoc($res_prod))
     { extract($data);
     
      $prix_unit_HT= round(($data['PrixUnitaire'] * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i])), 2);
      $MontantGlobal += $prix_unit_HT;
     
        echo "<tr></tr>";
        echo "<tr>";
    	echo "<td><font face='arial' size='2' color='#000066'>".htmlspecialchars($_SESSION['panier']['Reference'][$i])."</font></td>";
        echo "<td><font face='arial' size='2' color='#000066'>".$data['NomProduit']."</font></td>";
    	echo "<td><font face='arial' size='2' color='#000066'>".$data['Designation']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>× ".$data['QteColis']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>".$data['QteMoyen']."</font></td>";
        echo "<td align='center'><font face='arial' size='2' color='#000066'><input type=\"text\" size=\"2\" name=\"QteCommandee[]\" value=\"".htmlspecialchars($_SESSION['panier']['QteCommandee'][$i])."\"/></font></td>";
        echo "<td align='right'><font face='arial' size='2' color='#000066'>".$data['PrixUnitaire']." € / ".$data['UniteVente']."</font></td>";
    	echo "<td align='right'><strong><font face='arial' size='2' color='#000066'>$prix_unit_HT €</font></strong></td>";
        echo "<td align='center'><a href=".htmlspecialchars("panier.php?action=suppression&r=".rawurlencode($_SESSION['panier']['Reference'][$i]))."><img src='/img/croix.jpg' border='0' /></a></td>";
        echo "</tr>";
     
     
      echo "<tr><td colspan=\"3\"> </td>";
      echo "<td colspan=\"3\" align='right'><font face='arial' size='3' color='#0066CC'><b>";
    }
    }
     
      echo "Total estimatif : ".number_format($MontantGlobal,2)." €";
      echo "</b></font></td></tr>";
     
     
      echo "<tr><td colspan=\"2\">";
      echo "<input type=\"submit\" value=\"Rafraichir\"/>";
      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
      echo "</td></tr>";
     
     }
    }
    ?>
    Code d'insertion dans la BDD :
    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
    <?
    $prod="SELECT * FROM Produit WHERE Reference='".$_SESSION['panier']['Reference'][$i]."'";
    
    $res_prod=mysql_query($prod)
         or die (mysql_error());
    	 
     while ($data = mysql_fetch_assoc($res_prod))
     { extract($data);
    
    $ref=$_SESSION['panier']['Reference'];
    $qte=$_SESSION['panier']['QteCommandee'];
    $prix=(($data['PrixUnitaire']) * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i]));
     }
     
    $nbArticles=count($_SESSION['panier']['Reference']);
      if ($nbArticles <= 0)
       exit ("Votre panier est vide. La commande ne peut être finalisée.");
      else
      {
       for ($i=0 ;$i < $nbArticles ; $i++)
       { 
         $requete ="INSERT INTO LigneCommande (LC_Id,Lc_IdCommande,LC_IdProduit,LC_Quantite,LC_MontantTTC,LC_MontantTVA) VALUES ('','".$res_num_cde['MaxNumCde']."','".$ref[$i]."','".$qte[$i]."','".$prix[$i]."',19.6)";
     
         $rq_insert = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
       }
      }
    ?>
    C'est donc la variable $prix (voir en gras) qui ne s'insère pas dans la BDD, il y a toujours 0.00

    J'ai essayé pas mal de choses mais là je commence à être perdu dans ce "bordel" de code.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prix=(($data['PrixUnitaire']) * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i]));
    Donc $prix est un scalaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete ="INSERT INTO LigneCommande (LC_Id,Lc_IdCommande,LC_IdProduit,LC_Quantite,LC_MontantTTC,LC_MontantTVA) VALUES ('','".$res_num_cde['MaxNumCde']."','".$ref[$i]."','".$qte[$i]."','".$prix[$i]."',19.6)";
    Là tu utilises $prix comme un tableau.

    Je n'ai pas cherché davantage, le code étant mal formaté/indenté.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Merci pour ta réponse, je vais essayer de chercher un peu plus.

    Mais c'est vrai que pour le code, j'ai pas mal bricolé, donc ça doit pas être trés joli à voir pour qqn qui s'y connait bien !!!


  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    J'ai regardé pour les types de variables :

    Par contre, ma variable $prix est un bien un scalaire, mais là, il faut que cela calcule pour chaque produit de mon panier et je ne sais pas comment faire.

    Sinon pour le code j'ai essayé de l'indenter un peu mieux.
    J'espère que ça sera plus facile pour vous de comprendre :
    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
    				// requete d'insertion de la commande dans la BDD
     
    				$prod="SELECT * FROM Produit WHERE Reference='".$_SESSION['panier']['Reference'][$i]."'";
     
    				$res_prod=mysql_query($prod)
    					or die (mysql_error());
     
    				while ($data = mysql_fetch_assoc($res_prod))
    				{ extract($data);
    					$ref=$_SESSION['panier']['Reference'];
    					$qte=$_SESSION['panier']['QteCommandee'];
    					$prix=(($data['PrixUnitaire']) * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i]));
    				}
     
    				$nbArticles=count($_SESSION['panier']['Reference']);
    				if ($nbArticles <= 0)
    					exit ("Votre panier est vide. La commande ne peut être finalisée.");
    				else
    				{
    					for ($i=0 ;$i < $nbArticles ; $i++)
    						{ 
    							$requete ="INSERT INTO LigneCommande (LC_Id,Lc_IdCommande,LC_IdProduit,LC_Quantite,LC_MontantTTC,LC_MontantTVA) VALUES ('','".$res_num_cde['MaxNumCde']."','".$ref[$i]."','".$qte[$i]."','".$prix[$i]."',19.6)";
    							$rq_insert = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
    						}
    				}

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Le code et sa finalité ne sont pas très clairs
    Donne-nous la structure de ton panier, la structure des tables intéressantes de ta base de données, un exemple significatif des données que tu as en entrée et ce que tu veux en sortie.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Le code et sa finalité ne sont pas très clairs
    Donne-nous la structure de ton panier, la structure des tables intéressantes de ta base de données, un exemple significatif des données que tu as en entrée et ce que tu veux en sortie.
    OK, je prépare mon message, et je le poste.

    Merci

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

Discussions similaires

  1. pt->py:transfert de variables
    Par kowabounga dans le forum Zope
    Réponses: 1
    Dernier message: 17/08/2006, 11h00
  2. Session: pour le transfert de variables
    Par arti2004 dans le forum Langage
    Réponses: 15
    Dernier message: 28/05/2006, 18h16
  3. [VBA-E]Userform et transfert de variable
    Par Yanos dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/03/2006, 09h16
  4. transfert des variables de sessions
    Par Julie 2006 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 26/02/2006, 11h58
  5. [vb] Transfert de variables et listbox
    Par lepiou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/01/2006, 17h39

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