Général
- Présentation
- Les Symboles
- Les Métacaractères
- Les Ancres et Classes
- Les options
- Constantes prédéfinies
- Equivalences
- Créer un motif
- Les POSIX
- Les PCRE
- Les Plus des PCRE
- Les Assertions Part I
- Les Assertions Part II
- Motif conditionnel
- Mysql et les regex
- Url Rewriting
- Optimisation
- Aide mémoire
Les PCRE
Les POSIX
Pratique
Spécial php
- Conseils et Astuces
- Délimiteur PCRE
- Créer une bdd
- Utiliser du BBcode
- Le binaire
- Faire un panier
- Cases à cocher
- Citations imbriquées
- Colorateur syntaxique
- Les list-box ou combo-box
- Faire un diaporama
- Isset ou empty ?
- Une légende au survol
- Site en plusieurs langues
- Requêtes dynamiques
- Gestion des smiley
- Faire un moteur de template
- Timestamp php/mysql
- Timestamp mysql
- Matcher une adresse email
- Controler des données
Les billets de fred
- Les POSIX... mise en pratique !
- Limiter l'accès à un répertoire
- Alternance de couleurs
- Magic_quotes
- Désactiver les short_tags
- Require ou include : Bench
- Cohérence dans les chaines de caractères
- "echo" : lapin ou tortue ?
- Gérer un formulaire avec plusieurs boutons
- Le formulaire a t'il été soumis ?
- J'ai décidé de grossir
- La guerre des étoiles
- La guerre des boutons
- Headers already sent
- IP, IP, IP, houra !
- Créer un itérateur avec PHP5
- On vous conduit vers la lumière
- Comment utiliser MySQL avec PHP
- Non aux booléens !
- Php.ini : dist /recommended
- Include : gouffre ou fêlure ?
- Simple comme les sessions !
- Simplifier le traitement des erreurs
- Structurez vos applications
- Franchement, t'es trop for !
- Notice: Undefined variable (ou index)
- Proscrire les variables auto déclarées
Votre panier tout simplement !
Cet article va vous montrer comment faire un caddie tout simpleQu'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();
