Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

Votre panier tout simplement !

Cet article va vous montrer comment faire un caddie tout simple

Qu'appelle t'on un caddie ?

On appelle caddie le panier virtuel avec lequel vous pouvez effectuer des achats sur internet.

La première chose que l'on va faire, c'est de se créer une base de données et une table simple qu'on va appeler respectivement "caddie" et "articles"

La requête dans PhpMyAdmin :
La base de données :
CREATE DATABASE `caddie` ;

Donnez les privilèges dont vous avez besoin et créez ensuite la table "articles"
On va utiliser une table simple avec seulement 4 champs

La table :
CREATE TABLE `articles` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`designation` VARCHAR( 150 ) NOT NULL ,
`prix` FLOAT( 10, 2 ) NOT NULL ,
`lienphoto` VARCHAR( 150 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

Et voilà, notre table est prête.
On va se préparer un petit formulaire permettant de remplir notre table articles.

On va appeler la page ajout_article.php
<?php
echo '<form method="post" action="ajout_article.php">
<fieldset>
<label>Désignation :</label><input type="text" name="designation" />
<br />
<label>Prix :</label><input type="text" name="prix" />
<br />
<input type="submit" value="Enregistrer">
</fieldset>
</form>';
?>

Et voilà, on peut charger notre table. Je vous laisse le loisir de chercher comment organiser l'upload de vos photos d'articles ainsi que la mise en place de votre liste d'articles et la possibilité d'ajouter un article dans le panier.


La création d'un caddie est archi simple, il faut juste retenir cette petite phrase :

Un bon caddie ne contient que l'id_article et la quantité_article

On obtient donc un array simple de type : $cle[id_article]=quantite_article;

Pour pouvoir pousser son caddie dans tous les rayons, faut lui mettre des roues...
Et les roues du caddie s'appelle SESSION.

La procédure est donc :

- on crée un array qu'on rempli en cliquant sur un article (ça je vous laisse faire votre liste)
- on place cet array dans une session pour l'utiliser de page en page.

Exemple :
<?php
$panier=array(
'id_article1'=>'3',
'id_article18'=>'1',
'id_article462'=>'12',
etc...
);
?>

Et on place ce panier dans notre SESSION :
<?php
$_SESSION['caddie']=$panier;
?>

//======================================================

Autre manière de présenter la chose :
<?php
$session['panier']=array();

$id_article=125;
$quantite_article=2;
$session['panier'][$id_article]=$quantite_article;

$id_article=1788;
$quantite_article=29;
$session['panier'][$id_article]=$quantite_article;

print_r($session);
?>

Stop pas la peine de crier, je sais que cette procédure ne tient pas la route, c'est juste un exemple pour comprendre la forme du caddie.
Je vais donc vous donner la procédure correcte :
<?php
$_SESSION['caddie']['id_article1']='3';
$_SESSION['caddie']['id_article18']='1';
$_SESSION['caddie']['id_article462']='12';
...
// ainsi de suite pour tous les articles choisis.

?>

Pour gérer son caddie maintenant :

Pour modifier une quantité, suffit d'appeler l'id de l'article concerner.

Exemple :

<?php
$_SESSION['caddie']['id_article1']='8';
?>

Voilà, l'article 1 à une quantité de 8 unités au lieu de 3 précédement.

Pour supprimer un article, la même procédure, un simple unset sur l'id de l'article donnera
Exemple :
<?php
unset($_SESSION['caddie']['id_article1']);
?>

Et voilà, un caddie tout simple à gérer !

Tout cela est bien beau mais maintenant, il faut passer le caddie à la caisse !!!!!
Pas de panique c'est archi simple également et la procédure tient en 3 points :
- Extraction des éléments par un simple un appel sur la table avec les id_article contenu dans la SESSION
- Affichage via un simple while et un tableau en html. (oui oui, c'est du tabulaire ça monsieur... dixit JP Coffe !)
- Montant et total..., c'est des maths ! (tant pis pour ceux qui ont brossés les cours...)


Et voilà !
Quoi, c'est pas suffisant ?
J'en entend quelques uns derrière qui rouspètent...
Quoi la requête ?
Ah oui, comment extraires les éléments de la table avec les id dans la session ?
Vous êtes durs avec moi !
Bon allez, chui sympa, je vous en donne une version (d'autres sont possibles):

<?php
if(!empty($_SESSION['caddie']))
{
// on extrait les id du caddie
$id_liste=implode(',',array_keys($_SESSION['caddie']));
}

// on fait notre requête
$req="select id,designation,prix from articles where id IN(".$id_liste.")";
$res=mysql_query($req);

// on boucle les infos retenues
while($data=mysql_fetch_assoc($res))
{
// on clacule nos montants pour chaque article
$montant=$_SESSION['caddie'][$id]*$data['prix'];

// on affiche chaque ligne (avec une mise en page et du html bien sûr)
echo $data['designation'],' - ',$_SESSION['caddie'][$id],' - '$data['prix'],' - ',$montant'<br />';

// on additionne les montants pour notre total final
$total+=$montant;
}
echo 'Total du caddie : ',$total;
?>

Et voilà, aussi simple que ça !

Ah oui... n'oubliez-pas votre session_start();
ADAM Benjamin 2008 | Admin