Aller au contenu

Caddy php


kida

Sujets conseillés

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 :)

Url de test: Boutik

Mon 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?[color="purple"]t=$t[/color]");
}
}
else
{
header("Location:caddie.php");
}
?>


Affichage du caddy:

<?
if(isset($_SESSION['caddy']))
{
for($i=0;$i<count($_SESSION['caddy']);$i++)
{
[color="purple"]$t=$_GET['t'];[/color]
$sql='Select id,ref,nom,prix FROM '.[color="purple"]$t[/color].' 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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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 :

$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 :

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

Lien vers le commentaire
Partager sur d’autres sites

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 !!! :D

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

N'hésite pas à revenir nous voir :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...