Probleme d'array (panier)

lyoan Messages postés 5 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 10 octobre 2007 - 10 oct. 2007 à 13:00
Renus02 Messages postés 182 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 22 octobre 2010 - 10 oct. 2007 à 22:50
Bonjour à tous,

Je viens de commencer la création d'un panier et j'avoue rencontrer quelques problèmes.

Voici mon code, dites moi si vous voyez des choses qui ne vont pas car moi j'avoue ne plus rien y voir!!!!

<?php

    function PanierInit()
    {
        $_SESSION['panier'] = array();
        $_SESSION['panier']['num'] = array();
        $_SESSION['panier']['qte'] = array();
    }
   
    function PanierExiste()
    {
        if (isset($_SESSION['panier']))
        {   
            $panier = true;
        }
        else
        {
            $panier = false;
        }
       
        return $panier;
    }
       
    function AjoutPanier($num, $qte)
    {
        $ajouter = false;
       
        if(isset($num) && isset($qte))
        {
            array_push($_SESSION['panier']['num'], $num);
            array_push($_SESSION['panier']['qte'], $qte);
           
            $ajouter = true;
        }
       
        return $ajouter;
    }
       
    function ProduitExiste($num)
    {
        if(count($_SESSION['panier']['num']) > 0 && array_search($num,$_SESSION['panier']['num']) != false)
        {
            $produitExiste = true;
        }
        else
        {
            $produitExiste = false;
        }
       
        return $produitExiste;
    }
       
    function ModifQte($num, $qte)
    {
        $nb = count($_SESSION['panier']['num']);

         $ajouter = false;
       
        for($i = 0; $i < $nb; $i++)
        {
            if($num == $_SESSION['panier']['num'][$i])
            {
                $_SESSION['panier']['qte'][$i] = $qte;
                $ajouter = true;
            }
        }
       
        return $ajouter;
    }
       
    function SupprimerProduit($num)
    {
       
        $nb = count($_SESSION['panier']['num']);

         $supp = false;
       
        for($i = 0; $i < $nb; $i++)
        {
            if($num == $_SESSION['panier']['num'][$i])
            {
                array_splice($_SESSION['panier']['num'],$i,1);
                array_splice($_SESSION['panier']['qte'],$i,1);
               
                $supp = true;
            }
        }
               
        return $supp;
    }
?>

Est ce que mon panier est bien créer? je pense que oui mais mon plus
gros problème c'est pour vérifier si un produit et déjà dans le panier,
lui modifier que ça quantité.


Merci pour votre aide

1 réponse

Renus02 Messages postés 182 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 22 octobre 2010
10 oct. 2007 à 22:50
salut,

tu t'y connais pas un peu en programmation orientée objet ? cela te faciliterai la vie :

il te faut d'abord une classe produit, qui aura les attributs necessaire a l'identification d'un produit

class Product
{
    var $reference, $description, $price, $number;
   
    function Product( $reference, $description, $price, $number )
    {
        $this->reference = $reference;
        $this->description = $description;
        $this->price = $price;
        $this->number = $number;
    }
   
    function getReference()
    {
        return $this->reference;
    }
   
    function setNumber( $number )
    {
        $this->number = $number;
    }
}

puis une classe panier qui contient un tableau de produit

class Panier
{
    var products = array();
   
    function add( $product )
    {
        $this->products[] = $product;
    }
   
    function getProduct( $reference )
    {
        foreach( $this->products as $product )
        {
            if( $product->getReference() == $reference ){
                return $product;
            }
        }
        return null;
    }
   
    function modif( $reference, $number )
    {
        $product = $this->getProduct( $reference );
       
        if( isset( $product ) ){
            $product->setNumber( $number );
        }
    }
}

pour garder ton panier tu conserverais ton systeme de session (n'oublie pas qu'il faut serializer un objet pour le mettre en session et le deserialize en le recuperant ).

en fait tu instancierai ton objet
Panier

$panier = new Panier();

quan tu veux ajouter un produit tu l'instancie :

$products = new Products(  'AB201',  'description produit',  11, 3 );

et tu l'ajoute au panier :

$panier->add( $products );

(je n'ai pas penser a la fonction de suppression mais il te suffit de retirer le produit du tableau de produits )
0
Rejoignez-nous