Panier

Fermé
mirene22 - Modifié par mirene22 le 11/05/2015 à 19:14
mirene22 Messages postés 7 Date d'inscription vendredi 27 février 2015 Statut Membre Dernière intervention 12 mai 2015 - 12 mai 2015 à 17:09
Bonjour, j'ai crée mon propre panier en php/javascript
mon problème est le suivant : lorsque j'ajoute le méme produit plusieurs fois je n'arrive pas à additionner les quantités et prix sans créer une nouvelle ligne voici mon code php:

<?php 
Session_start();
if(isset($_POST['code_client']) && isset($_POST['qte']) && isset($_POST['nom'])
 && isset($_POST['code_produit']) && isset($_POST['prix']) ){
$code_client = $_POST['code_client'];
$qte = $_POST['qte'];
$nom = $_POST['nom'];
$code_produit = $_POST['code_produit'] ;
$prix = $_POST['prix'];
$total_qte= $prix * $qte;}


$db = mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("superette"); // Sélection de la base

// c'est ICI QUE ça SE PASSE ************************

//verifier si le produit existe déja dans le panier !!
$sql15="SELECT sum(code_produit) AS somme FROM panier where code_produit='$code_produit' &&
code_client='$code_client' ";
$req15 = mysql_query($sql15) or die('erreur sql!'.mysql_error());
$donnees15 = mysql_fetch_array($req15) or die('erreur sql!'.mysql_error());
echo ''.$donnees15['somme'].'';


if($donnees15['somme']>0){
//calculer toutes les sommes en premier

//somme des prix !!
$sql16="SELECT sum(prix) AS somme2 FROM panier where code_produit='$code_produit' &&
code_client='$code_client' ";
$req16 = mysql_query($sql16) or die('erreur sql!'.mysql_error());
$donnees16 = mysql_fetch_array($req16) or die('erreur sql!'.mysql_error());
echo ''.$donnees16['somme2'].'';
$prix1=$donnees16['somme2'];
echo $prix1;
 
 // somme des qte
$sql17="SELECT sum(qte) AS somme3 FROM panier where code_produit='$code_produit' &&
code_client='$code_client' ";
$req17 = mysql_query($sql17) or die('erreur sql!'.mysql_error());
$donnees17 = mysql_fetch_array($req17) or die('erreur sql!'.mysql_error());
echo ''.$donnees17['somme3'].'';
$qte1=$donnees17['somme3'];
echo $qte1;
 
//somme des total_qte
$sql18="SELECT sum(total_qte) AS somme4 FROM panier where code_produit='$code_produit' &&
code_client='$code_client' ";
$req18 = mysql_query($sql18) or die('erreur sql!'.mysql_error());
$donnees18 = mysql_fetch_array($req18) or die('erreur sql!'.mysql_error());
echo ''.$donnees18['somme4'].'';
$total_qte1=$donnees18['somme4'];
echo $total_qte1;

//on vide le panier pour le remplir avec la nouvelle ligne de la somme : 
$sql5=" delete from panier where code_client='$code_client' && code_produit='$code_produit'";
$req5=mysql_query($sql5) or die('paiement qui ne peut pas etre effectue!!'.mysql_error());


$sql1="INSERT INTO panier(code_client,code_produit,qte,prix,total_qte) values
('$code_client','$code_produit','$qte1','$prix1','$total_qte1')";
$req1 = mysql_query($sql1) or die('erreur sql!'.mysql_error());
*********************************************************
}
else
{

$sql="INSERT INTO panier(code_client,code_produit,qte,prix,total_qte) values
('$code_client','$code_produit','$qte','$prix','$total_qte')";
$req = mysql_query($sql) or die('erreur sql!'.mysql_error());
}
mysql_close($db);

 ?>



Mon idée est la suivante :
vérifier si le produit existe déjà si c'est le cas on :
1) calcul la somme des quantités et on la garde dans une variable
2) on vide le panier
3) on rempli le panier avec une nouvelle ligne qui comporte la variable somme

biensur ceci ne peut pas étre visualiser par le client car j'ai mis une fonction qui rafraichie la page toute les secondes

1 réponse

mirene22 Messages postés 7 Date d'inscription vendredi 27 février 2015 Statut Membre Dernière intervention 12 mai 2015
Modifié par mirene22 le 12/05/2015 à 17:10
svp personne ne sais comment le faire j'ai vraiment besoin d'aide !
<?php 
Session_start();
//récupération des variables du produit :

if(isset($_POST['code_client']) && isset($_POST['qte']) && isset($_POST['nom'])
 && isset($_POST['code_produit']) && isset($_POST['prix']) ){
$code_client = $_POST['code_client'];
$qte = $_POST['qte'];
$nom = $_POST['nom'];
$code_produit = $_POST['code_produit'] ;
$prix = $_POST['prix'];
$total_qte= $prix*$qte;
}

//connexion à la BDD !
$db = mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("superette"); // Sélection de la base

//verifier si le produit existe déja dans le panier !!
$sql="SELECT COUNT(*) AS somme FROM panier WHERE code_produit='P15' AND
code_client='xC4gFltmVG'";
$req=mysql_query($sql)  or die('erreur sql!'.mysql_error());
while ($donnees = mysql_fetch_array($req)){                       //yli9 tkhali la sql executa bech te7seb ch3al 

$n= $donnees['somme'];
}


if($donnees['somme'] > 0){
$sql1="SELECT * FROM panier where code_produit='p15' AND code_client='xC4gFltmVG' ";
$req1 = mysql_query($sql1) or die('erreur sql!'.mysql_error());
$donnees1 = mysql_fetch_array($req1) or die('erreur sql!'.mysql_error());

$qte=1+ $donnees1['qte'];
$prix=1 + $donnees1['prix'];
$total_qte=1 + $donnees1['total_qte'];

$sql3=" update panier SET qte='".$qte."',prix='".$prix."',total_qte='".$total_qte."'
 WHERE code_produit='".$code_produit."' and code_client='".$code_client."'  "
$req3 = mysql_query($sql3) or die('erreur sql!'.mysql_error());
}
else 

{
$sql2="INSERT INTO panier(code_client,code_produit,qte,prix,total_qte) values
('$code_client','$code_produit','$qte','$prix','$total_qte')";
$req2 = mysql_query($sql2) or die('erreur sql!'.mysql_error());
}
mysql_close($db);
?>
0