Tuto caddie virtuel et DB (sql)

Nous allons voir ici un exemple précis pour une boutique virtuelle la création du caddie via les variables de sessions.
Je n'expliquerais pas ici le fonctionnement de ces dernières sinon comment les utiliser, il est donc utile de connaitre un minimum de syntaxe sur ces sessions, n'hésitez pas à voir le tuto sur les sessions le B A ba sur : www.phpfacile.com.

* Notez que ce tuto est compatible avec php > 4.2 , vous saurez modifier les scripts en fonction de votre version php.
je vous rappelle juste que les variables provenant d'un formulaire en métode 'post', se récupèreront à partir de php > 4.2 de la forme suivante $_POST['variable'] et non plus $variable.


Je vous conseille fortement de télécharger le script au complet plus les infos pour la base de données et de revenir ensuite sur cette page pour les explications.
Télécharger le script (format zip)

Entrons dans le vif du sujet, vous êtes un fleuriste ultra moderne avec une boutique en ligne.
Nous allons creer une table (trés trés sommaire) pour les fleurs, qui comprendra un n° d'id (identification unique) + nom de la fleur + prix unitaire de cette fleur.
Voici en gros comment se présente notre table `fleuriste` :
Exemple de la table fleuriste :
id [tinyint en auto_increment] nom [varchar] prix [decimal(5,2)]
1 Rose 1.75
2 Tulipe 2.25
3 Oeillet 3.50

Nous allons désormais créer la boutique virtuelle. Pour cela nous interrogerons notre table pour afficher toutes les fleurs que nous pouvons proposer à notre aimable clientèle, en y ajoutant un lien à chacune pour la commande et le détail.
Script de la Boutique :
< ?
session_start(); //demarrage de la session
if(isset($_SESSION['panier'])){ //si il y a une comande dans le caddie alors on affiche un lien au caddie
echo "<div align='right'><a href='Panier4_3.php'><b>VOIR CADDIE</b></a></div><br><br>"
}
?>
<H1 align="center">Votre Boutique en ligne ....</H1>
<table border="1" bgcolor="cccccc" align="center" width="75%">
<tr bgcolor='white'>
<td width=''>Noms</td>
<td width=''>Px Unitaires</td>
<td width=''>&nbsp;</td>
</tr>
< ?
if(!isset($_GET['prod'])){// pas de variable dans l'url
require('inc_connect.php');// connexion à la base
$sql="Select* from fleuriste";
$req=mysql_query($sql,$connexion)or exit ('Erreur SQL !'.$sql.'<br>'.mysql_error());
while( $data=mysql_fetch_array($req) ) {//la boucle pour l'affichage des données.
echo"<tr><td>".$data['nom']." </td><td> ".$data['prix']."</td><td> <a href='panier4_1.php?prod=".$data['id']."'>Détail+Cde</a></td></tr>";
}
mysql_close();// n'oubliez pas de fermer la connexion !!
?>
</table>
< ?
}

Ici, notez bien que :
Nous avons créé dans le tableau, dans la dernière colonne un lien sur la même page mais en lui passant une variable dans l'url,
<td> <a href='panier4_1.php?prod=".$data['id']."'>Détail+Cde</a></td>

celle de l' 'ID(unique) de la fleur, ce qui nous permettra de la retrouver dans le prochain traitement que voici :

Script du détail d'une fleur + commande :
if(isset($_GET['prod'])){//si la variable prod est passée par l'url
if(!is_numeric($_GET['prod'])){//juste une première sécurité
echo"<font color='red'>MERCI DE NE PLUS RECOMMENCER CETTE OPERATION !!!</font>";
exit;
}
require('inc_connect.php');
$sql1="Select* from fleuriste where id=".$_GET['prod'];//nous interrogeons la table sur l'id de la fleur
$req1=mysql_query($sql1,$connexion)or exit ('Erreur SQL !'.$sql1.'<br>'.mysql_error());
$nb=mysql_num_rows($req1);
if($nb==0){//juste une seconde sécurité
echo"<font color='red'>MERCI DE NE PLUS RECOMMENCER CETTE OPERATION !!!</font>";
exit;
}
//afichage du Produit séléctionné avec qté à commander:
while( $data=mysql_fetch_array($req1) ) {
?><form method="POST" action="Panier4_2.php">// Formulaire qui enverra les données sur la page de traitement
< ?
echo"<tr><td>".$data['nom']." </td><td colspan='2'> ".$data['prix']."</td></tr>".
// le champ qui récupèrera le nbre de fleurs commandées.
"<tr><td colspan='3'align='center'>Quantité : <input type='text' name='qte' size='5'>".
"<input type='submit' name='action' value='Cder'></td></tr>".//bouton de validation
"<input name='id' type='hidden' value='".$data['id']."'>";//trés important, en champ caché l'ID de la fleur
}
mysql_close();
?>
</table><br>
<div align="center"><a href="javascript:history.go(-1)"><< Retour Boutique</a></div>
< ?
}


Explications :
Voilà, notre boutique est en place, nous affichons tous nos produits (fleurs) et sur simple lien, le client peut voir le détail d'une fleur et la commander.
Notons que nous aurions pu faire dans notre table une colonne description avec quelques infos concernant la flaur, origine, taille, couleurs...
Il nous suffisait ensuite de créer dans notre tableau détaillé une ligne pour la déscription, le principe restant toujours le même.

Panier4_2.php : Le traitement >>


Si des doutes persistent, des questions spécifiques, des petits problèmes de mise en place, n'hésitez pas à consulter le forum référence en php :
www.AllHtml.com

Tutos:
Cases à cocher   Tronquer un texte    Moteur de recherche    Tableau (Array) et boucles    Caddie virtuel    Calendrier   

Notes:
Notez que de toute façon ces scripts ne sont qu'à titre d'exemples et n'en sont donc que trés partiels, il vous faudra bien-sûr les intégrer dans l'environnement de votre page, de votre site, mais la méthode est là et elle fonctionne.
Autre point important, ces morceaux de scripts notament, lorsqu'il y a connexion à votre base de données, ne font aucune référence à certains problèmes de sécurité.