par
Cyrano » 27 juil. 2005, 09:36
Pas tout à fait. Je reprends plus en détail.
Ta variable de session $_SESSION['panier'][$select] ne correspond pas à grand chose parce que $select contient une valeur variable : ce qui peut varier, c'est le contenu, mais le contenant doit être identifiable.
Tu crées une vairable à trois dimensions composée de tableau et de sous tableaux. Première chose à créer, le panier global :
$_SESSION['panier'] = array();
Ça, c'est le contenant général de ton panier. Tu dois le subdiviser en compartiments avant d'y stocker quoique ce soit de manière organiser pour pouvoir trier ce contenu et le manipuler. Là, tu as trois partie à créer pour les quantités, les tailles et les prix.
$_SESSION['panier']['qte'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['prix'] = array();
Voilà, là, nous avons maintenant un panier avec trois compartiments pour y mettre nos articles. Mais on ne peut pas mettre nos articles en vrac, il faut pouvoir retrouver nos articles, les tailles correspondant exctement à chaque article ajouté et la taille aussi. Donc ce sont également des tableaux, mais si "panier" est un tableau associatif (donc avec des index nommées "qte", "taille" et "prix", chaque compartiment est un tableau indexé, c'est à dire que les index seront numérotés de 0 à n.
Prenons un cas : supposons que ton site est un magasin de vêtements. J'ajoute dans mon panier
2 pantalons taille
56 d'une valeur de
24,95€ : première chose qu'on va remarquer : il manque un identifiant permettant de dire de quel type d'article il s'agit . Rajoutons ce compartiment au tableau.
$_SESSION['panier']['id_article'] = array();
Maintenant, nous avons le point manquant. La référence de notre pantalon est "
phlevis501". La première chose à faire avant d'ajouter dans le panier, c'est de vérifier que le paier existe, sinon, on le crée. Puis on ajoute dedans. Le code sera le suivant:
<?php
/* Démarrage ou prolongation de la session */
/* Article exemple */
$select = array();
$select['id'] = "phlevis501";
$select['qte'] = 2;
$select['taille'] = "56";
$select['prix'] = 24.95;
/* On vérifie l'existence du panier, sinon, on le crée */
if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
$_SESSION['panier']['id_article'] = array();
$_SESSION['panier']['qte'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['prix'] = array();
}
/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */
array_push($_SESSION['panier']['id_article'],$select['id']);
array_push($_SESSION['panier']['qte'],$select['qte']);
array_push($_SESSION['panier']['taille'],$select['taille']);
array_push($_SESSION['panier']['prix'],$select['prix']);
/* Affichons maintenant le contenu du panier : */
?>
<pre>
<?php
var_dump($_SESSION['panier']);
?>
</pre>
Et le résultat affiché sera le suivant :
array(4) {
["id_article"]=>
array(1) {
[0]=>
string(10) "phlevis501"
}
["qte"]=>
array(1) {
[0]=>
int(2)
}
["taille"]=>
array(1) {
[0]=>
string(2) "56"
}
["prix"]=>
array(1) {
[0]=>
float(24.95)
}
}
Note bien que le prix qui est dans la variable $_SESSION['panier']['prix'][0] correspond au prix unitaire de l'article. Donc pour avoir le prix total du panier, tu devras commencer par multiplier le prix par la quantité puis ensuite additionner les articles.
Est-ce que c'est plus clair comme ça ?

Pas tout à fait. Je reprends plus en détail.
Ta variable de session $_SESSION['panier'][$select] ne correspond pas à grand chose parce que $select contient une valeur variable : ce qui peut varier, c'est le contenu, mais le contenant doit être identifiable.
Tu crées une vairable à trois dimensions composée de tableau et de sous tableaux. Première chose à créer, le panier global :
[php]$_SESSION['panier'] = array();[/php]
Ça, c'est le contenant général de ton panier. Tu dois le subdiviser en compartiments avant d'y stocker quoique ce soit de manière organiser pour pouvoir trier ce contenu et le manipuler. Là, tu as trois partie à créer pour les quantités, les tailles et les prix.
[php]$_SESSION['panier']['qte'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['prix'] = array();[/php]
Voilà, là, nous avons maintenant un panier avec trois compartiments pour y mettre nos articles. Mais on ne peut pas mettre nos articles en vrac, il faut pouvoir retrouver nos articles, les tailles correspondant exctement à chaque article ajouté et la taille aussi. Donc ce sont également des tableaux, mais si "panier" est un tableau associatif (donc avec des index nommées "qte", "taille" et "prix", chaque compartiment est un tableau indexé, c'est à dire que les index seront numérotés de 0 à n.
Prenons un cas : supposons que ton site est un magasin de vêtements. J'ajoute dans mon panier [color=red]2[/color] pantalons taille [color=red]56[/color] d'une valeur de [color=red]24,95[/color]€ : première chose qu'on va remarquer : il manque un identifiant permettant de dire de quel type d'article il s'agit . Rajoutons ce compartiment au tableau.
[php]$_SESSION['panier']['id_article'] = array();[/php]
Maintenant, nous avons le point manquant. La référence de notre pantalon est "[color=red]phlevis501[/color]". La première chose à faire avant d'ajouter dans le panier, c'est de vérifier que le paier existe, sinon, on le crée. Puis on ajoute dedans. Le code sera le suivant:
[php]<?php
/* Démarrage ou prolongation de la session */
/* Article exemple */
$select = array();
$select['id'] = "phlevis501";
$select['qte'] = 2;
$select['taille'] = "56";
$select['prix'] = 24.95;
/* On vérifie l'existence du panier, sinon, on le crée */
if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
$_SESSION['panier']['id_article'] = array();
$_SESSION['panier']['qte'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['prix'] = array();
}
/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */
array_push($_SESSION['panier']['id_article'],$select['id']);
array_push($_SESSION['panier']['qte'],$select['qte']);
array_push($_SESSION['panier']['taille'],$select['taille']);
array_push($_SESSION['panier']['prix'],$select['prix']);
/* Affichons maintenant le contenu du panier : */
?>
<pre>
<?php
var_dump($_SESSION['panier']);
?>
</pre>[/php]
Et le résultat affiché sera le suivant :
[quote]array(4) {
["id_article"]=>
array(1) {
[0]=>
string(10) "phlevis501"
}
["qte"]=>
array(1) {
[0]=>
int(2)
}
["taille"]=>
array(1) {
[0]=>
string(2) "56"
}
["prix"]=>
array(1) {
[0]=>
float(24.95)
}
}[/quote]
Note bien que le prix qui est dans la variable $_SESSION['panier']['prix'][0] correspond au prix unitaire de l'article. Donc pour avoir le prix total du panier, tu devras commencer par multiplier le prix par la quantité puis ensuite additionner les articles.
Est-ce que c'est plus clair comme ça ? :)