Caddie e-commerce

guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009 - 5 mai 2007 à 17:56
guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009 - 9 mai 2007 à 19:19
Salut je suis à la recherche de conseils svp,
Voila je suis entrain de crée un petit panier e-commerce pour lister les articles et en choisir un sa c'est bon

af_article2.php = liste de tout les articles
s_article2.php = un article selectionne dans la page d'avant
caddie2.php = au cadie

Liens de s_article2.php qui envoi vers le cadie
echo '[caddie2.php?idprd='.$id.'&qte=1 Commander]';

Quand je l'ajoute au caddie il s'affiche mais dès que je resort de la page il disparait pourtant la session est je pense bien ouverte.
J'ai reflechi au probleme que j'ai sur comment differencier les produits et à les affiches en leur donnant une id dans la session
Parce que la à chaque fois que je rajoute un produit il ecrase la session je pense.
Et pour les affiches je pense qu'il faut faire un foreach mais j'ai essayer pleins de methodes sa marche pas je vois pas quoi recupere

Si quelq'un peut m'aider pour me dire comment faire c'est deux manip est le probleme dans mon code du caddie merci bcp

Merci @++

Voici la page caddie2.php

<?php
session_start();
require "../include/config.php";
//Suppression
if(isset($_GET['suppr'])){
$idprd=$_GET['suppr'];
if(empty($_SESSION["panier"]["contenu"])){
unset($_SESSION["panier"]["contenu"]);
$redir = "<meta http-equiv="refresh" content="1;url=caddie2.php"/>";
} }
//Ajout
if(isset($_GET['idprd']) && isset($_GET['qte'])){
$idprd=$_GET['idprd'];
$qte=$_GET['qte'];
if(empty($_SESSION["panier"]["contenu"])){
     $_SESSION["panier"]["contenu"] = array();
     $_SESSION["panier"]["contenu"]["id_produit"] = $idprd;
     $_SESSION["panier"]["contenu"]["quantite_produit"] = $qte;
}
else {
     $_SESSION["panier"]["contenu"] = array();
     $_SESSION["panier"]["contenu"]["id_produit"] = $idprd;
     $_SESSION["panier"]["contenu"]["quantite_produit"] = $qte;
} }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<?php if (isset($redir)) print($redir); ?>
<title></title>
<link rel="stylesheet" type="text/css" href="../css/site.css" />
<style type="text/css">
<!--
body {
 background-color: #666666;
}
-->
</style>
</head>

Votre Caddie...

<?php
if (isset($_SESSION["panier"]["contenu"])){
echo '[af_article2.php Retour à la Boutique]';
echo '';
echo 'Produit, ';
echo 'Quantité, ';
echo 'Px Unité, ';
echo 'Poids Unité, ';
echo 'Total, ';
echo 'DEL, ';
$tot=0;// initialisation du total.
$sql=\"SELECT * FROM article WHERE id='\".$_GET['idprd'].\"'\";
$req = mysql_query($sql);
while ($data=mysql_fetch_array($req) ){
$aze = $_SESSION[\"panier\"][\"contenu\"][\"id_produit\"];//Resultat session id
$cde = $_SESSION[\"panier\"][\"contenu\"][\"quantite_produit\"];//Resultat session quantite
$idarticle=$data['id'];//id de l'article
$nom=$data['nom'];//nom de l'article
$prix=$data['prix'];// prix unitaire
$quantitemax=$data['quantite'];//quantite max
$pxligne=$prix*$cde; //prix pour la ligne de commande
$tot+=$pxligne;//valorisation du total général
$poids=$data['poids'];// poids unitaire
$poidsligne=$poids*$cde; //poids pour la ligne de commande
$totpoids+=$poidsligne;//valorisation du total poids général
$tva=$data['tva'];// tva
$totalttc = $tot + ($tva / 100 + 1);
echo '----
'.$aze.' - '.$nom.', ';
echo ''.$cde.', ';
echo ''.$prix.', ';
echo ''.$poids.', ';
echo ''.number_format($pxligne, 2,'.',' ').', ';
echo '[s_article2.php?prod='.$idarticle.' Retour à l\'article]

';
 ?>
</html>

Voici la table d'exemple
CREATE TABLE `article` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(100) default NULL,
`prix` decimal(5,2) default '0.00',
`quantite` int(11) default '0',
`poids` decimal(5,2) default '0.00',
`tva` decimal(5,2) default '0.00',
`detailsfr` text,
`detailsen` text,
`image` varchar(100) default NULL,
`reference` char(30) default NULL,
`dateajout` datetime default NULL,
`datefini` datetime default NULL,
`image2` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `article` VALUES ('1','test','10.20','5','0.60','19.60','detailsfr','detailsen','','','','','');
INSERT INTO `article` VALUES ('2','test2','5.50','5','5.50','19.60','french','english','','','','','');

1 réponse

guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009
9 mai 2007 à 19:19
Bonjour bon j'ai avance dans mon projet mais je commence à péter un câble je m'explique

Quand j'ajoute un objet dans mon caddie et que cet objet est le 1er
la session se crée mais n'affiche pas le produit dans le caddie pourtant la session est bien présente et bonne

Après si on rajoute un nouvel objet il supprimer le précédent et le remplace par le nouveau et l'affiche
Allez comprendre prk moi perso je vois pas et sa m'énerve d'ailleurs lol
Ou je fais une erreur dans mon code et prk il ne veut pas me crée un second produit au lieu de reécrire sur le 1er
Si quelq'un vois ou est l'erreur je l'en remercie voici mon caddie

<?php
require "include/config.php";
// vider le panier
if (is_numeric($_GET['vider'])) {
unset($_SESSION['panier']);
echo 'Vous avez vider le panier';
$redir = "<meta http-equiv="refresh" content="3;url=index.php?guisx=caddie"/>";
}
// ajouter/supprimer une unité d'un produit
else if (isset($_SESSION['panier']) && is_numeric($_GET['prod']) && is_numeric($_GET['quant'])) {
$count = count($_SESSION['panier']);
        for($i=0;$i<$count;$i++)
        {
            $prod = $_SESSION['panier'][$i]['produit'];
            $prod = $_GET['prod'];
            $quant = $_SESSION['panier'][$i]['qteprd'];
            $quantget = $_GET['quant'];
            if($quant < $quantget)
            {  
                $quantajout = $quant;
                $quantajout = $quantajout+1;
                $_SESSION['panier'][$i]['qteprd'] = $quantajout;
                echo 'Vous avez ajouter une unite au produit';
                $redir = "<meta http-equiv="refresh" content="3;url=index.php?guisx=caddie"/>";
            }
            else if($quant > $quantget)
            {  
                $quantsuppr = $quant;
                $quantsuppr = $quantsuppr-1;
                $_SESSION['panier'][$i]['qteprd'] = $quantsuppr;
                echo 'Vous avez supprimer une unite au produit';
                $redir = "<meta http-equiv="refresh" content="3;url=index.php?guisx=caddie"/>";
            }
        }
}
//Supprimer directement le produit
else if (isset($_SESSION['panier']) && is_numeric($_GET['supprprod'])) {
$count = count($_SESSION['panier']);
        for($i=0;$i<$count;$i++)
        {
            $_SESSION['panier'][$i]['produit'] = $_GET['supprprod'];
            unset($_SESSION['panier'][$i]['produit']);
            unset($_SESSION['panier'][$i]['qteprd']);
            unset($_SESSION['panier'][$i]);
            unset($_SESSION['panier']);
            echo 'Produit supprimer';
            $redir = "<meta http-equiv="refresh" content="3;url=index.php?guisx=caddie"/>";
        }
}
//Le panier n'existe pas
if (!isset($_SESSION['panier'])) {
    $_SESSION['panier'] = array();//Initialisation du panier
    // Subdivision du panier
    $_SESSION['panier']['produit'] = array();
    $_SESSION['panier']['qteprd'] = array();
}
//Si on nous envoi un nouveau produit
if (isset($_POST['produit']) && isset($_POST['qteprd'])) {
$count = count($_SESSION['panier']);
for($i=0;$i<$count;$i++)
{
//On met le prdt dans un tableau        
$_SESSION['panier'] = array();
$_SESSION['panier'][$i]['produit'] = $_POST['produit'];
$_SESSION['panier'][$i]['qteprd'] = $_POST['qteprd'];
}//for
echo 'Ajout du nouveau produit reussi
';
$redir = "<meta http-equiv="refresh" content="3;url=index.php"/>";
}

if (isset($redir)) print($redir);//Affichage de la redirection

//Haut du panier
echo 'Produit,
Quantité,
Px Unité,
Poids Unité,
Total,
DEL, ';
//On recupere les articles    
$count = count($_SESSION['panier']);
for($i=0;$i<$count;$i++)
{
$refprodses = $_SESSION['panier'];
$produitses = $_SESSION['panier'][$i]['produit'];
$qteprdses = $_SESSION['panier'][$i]['qteprd'];
$sql=\"SELECT * FROM article WHERE idarticle='$produitses'\";
$req = mysql_query($sql);
while ($data=mysql_fetch_array($req) ){
$nomun = stripslashes($data['nom']);//nom de l'article
$prixht = $data['prix'];// prix unitaire
$quantitemax = $data['quantite'];//quantite max
$poidsun = $data['poids'];// poids unitaire
$tva = $data['tva'];// tva
$pxligne = $prixht*$qteprdses; //prix pour la ligne de commande
$tot+=$pxligne;//valorisation du total général
$poidsligne = $poidsun*$qteprdses; //poids pour la ligne de commande
$totpoids+=$poidsligne;//valorisation du total poids général
$totalttc = $tot + ($tva / 100 + 1);//Calcul TVA
$ajoutunite = $qteprdses + 1;//Ajouter une unite
$supprunite = $qteprdses - 1;//Supprimer une unite
$quantitemini = 1;//Quantite mini
//Affichage des articles
echo '----
'.$nomun.', ';
echo '';
echo '[index.php?guisx=f_infos&pseudocm='.$pseudocm.' Commander]
';
echo '[index.php?guisx=f_infos&vider=vider Vider le panier]
';
print_r($_SESSION);//Voir le contenu de la session
?>
0
Rejoignez-nous