Version complète: sur le forum Webmaster Hub : Caddy php
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
kida
Bonjour à tous,

Je fait un caddy avec 3 tables produits (3 pages différentes).

Voici mon problème:

Lorsque je choisi un 1er prod (id=1) de la table Poteries, ok il me l'ajoute au caddy.
Ensuite quand je choisi un second prod (id=2) de la table Bijoux, il me l'ajoute mais il me remplace le 1er, id=1 de Poteries par id=1 de la table Bijoux.

Il croit que tous le caddy vient de la dernière table sélectionnée.

Je crois que le problème vient de variable d'url t ... Seulement de ne sais plus quoi en faire, ou comment la trier selon chaque produit ajouté.

Si une bonne âme pouvait m'aider . Merci d'avance smile.gif

Url de test: Boutik

Mon code:

CODE
Lien Ajout caddy:

et change sur chaque page (Poteries,Bijoux,Bio)

<a href=caddie_add.php?prod=".$res['id']."&t=bijoux&qte=1>Ajouter au panier</a>

Add Caddy:

<? session_start();
if(isset($_GET['prod']) && isset($_GET['qte']))//si id produit
{
$t=$_GET['t'];
if(isset($_SESSION['caddy']))
{
$nbprod=count($_SESSION['caddy']);
for($i=0;$i<$nbprod;$i++)
{
if($_SESSION['caddy'][$i]['prod']==$_GET['prod'])
{
$prodin="true";
$prodline=$i;
}
}
if(isset($prodin) && $prodin=="true")
{
array_splice($_SESSION['caddy'],$prodline,1);
array_push($_SESSION['caddy'],array("prod"=>$_GET['prod'],"qte"=>$_GET['qte']));
}
else
{
array_push($_SESSION['caddy'],array("prod"=>$_GET['prod'],"qte"=>$_GET['qte']));
}
header("Location:caddie.php?t=$");
}
else
{
session_register('caddy');
$_SESSION['caddy']=array();
array_push($_SESSION['caddy'],array("prod"=>$_GET['prod'],"qte"=>$_GET['qte']));
header("Location:caddie.php?t=$t");
}
}
else
{
header("Location:caddie.php");
}
?>


Affichage du caddy:

<?
if(isset($_SESSION['caddy']))
{
for($i=0;$i<count($_SESSION['caddy']);$i++)
{
$t=$_GET['t'];
$sql='Select id,ref,nom,prix FROM '.$t.' WHERE id="'.$_SESSION['caddy'][$i]['prod'].'"';
$res=mysql_query($sql) or die ('Erreur SQL!'.$sql.mysql_error());
while($val=mysql_fetch_array($res))
{
$tva=19.6;
$prix_ligne=$val['prix']*$_SESSION['caddy'][$i]['qte'];;
$prix_tot_ht+=$prix_ligne;
$prix_temp=($prix_tot_ht*$tva)/100;
$prix_tot_ttc=$prix_tot_ht+$prix_temp;
echo "<tr>";
?>

.....


Edit Arlette : Inutile d'utiliser la couleur, se servir de balise code suffit wink.gif
baboon
Bonjour arlette,

Je regardais ton code php; je suis allais voir sur le site...
Je ne suis pas une perle, mais un petit truc accroche mon regard :

CODE
$t = $_GET['t'];
$sql='Select id,ref,nom,prix FROM '.$t.' WHERE id="'.$_SESSION['caddy'][$i]['prod'].'"';
$res=mysql_query($sql) or die ('Erreur SQL!'.$sql.mysql_error());

en initialisant $t à $_GET['t'] ta requete s'exécute uniquement sur la derniere tables ou le choix s'est effectué....

Ne peux t-on pas faire plutot :
CODE
SELECT id,ref,nom,prix from poteries,bijoux,bio WHERE id="'.$_SESSION['caddy'][$i]['prod'].'"';

Et à ce moment là , pourquoi ne pas avoir mis tous les articles dans une même table ? avec un champ de plus (categorie par exemple)....Il n'y a apparement pas trop d'articles...
L'affichage principal peut rester similaire avec un affichage par catégorie depuis le menu poteries, bio, bijoux....(filtre)

En espérant avoir répondu...
Bonne journée
kida
Salut Baboon,


En fait j'ai fait 3 table pour augmenter la difficulté de l'exercice, pour apprendre un maximum.

Mais je vais essayer de m'inspirer de tes conseils merci, c'est toujours mieux le travail en équipe.

Si tu as d'autres idées ???

Bonne journée !!! biggrin.gif
NorSeb
Bonjour,

Ta question révèle un manque d'analyse. Car si ce que Baboon a détecté est correct (une table par type d'article) il y a en effet quelques lacunes. Tu peux par exemple te poser la question suivante : comment vas-tu faire lorsqu'il te faudra ajouter une ou plusieurs catégories supplémentaires.

Une solution simple consiste à créer deux tables. Une tables des catégories et une tables des articles. De cette façon, il est "facile" d'ajouter une catégorie au besoin, l'affichage des articles est standard quelle que soit la catégorie, et, cerise sur le gateau, tu peux stocker les catégories parcourue. Car l'astuce consiste à attribuer un identifiant unique à chaque catégorie.

Pour résumer : il faut d'abord que tu dégage les caractéristiques que tu va vouloir stocker concernant les articles (prix, dimensions, photo, description, etc.) Quelque chose de très généraliste, même si certaines informations ne pourront pas forcément "coller" à certains.
Ensuite, tu créé tes tables. Puis tu peux créer une zone d'admin ou tu va gérer tes catégories et tes articles... Enfin : tu va faire le site wink.gif

N'hésite pas à revenir nous voir smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.