Prob Session Add_Caddie (non débutant)

kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006 - 13 juin 2005 à 11:41
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 14 juin 2005 à 21:32
Kida

Boujour les codeurs,

Je ne débute pas tout à fait en Php, mais ça fait une semaine que j'essai de faire marcher un caddy avec sessions et pas moyen!

Le caddie se créer bien mais il ne m'ajoute pas les produits quand j'en je veux en acheter d'autres.

J'ai surement une erreur dans mon code mais je n'arruve plus à voir le problème.

Si quelqu'un peut m'aider ça serait super cool !!!

Merci d'a vance pour votre aide

KIDA

Voici mes codes de pages:

Page catalogue produit (le lien d'ajout):

Ajouter au panier

Page add_caddie.php:

<? session_start();
if(isset($_GET['prod']))//si id produit
{
$t=$_GET['t'];


if(isset($_SESSION['caddie']) && isset($caddie))
{
$nb=count($caddie);

for($i=0;$i<$nb;$i++)
{

if($caddie['prod'] == $_GET['prod'])
{
$prodin="true";
$place=$i;
}
}
if(isset($prodin) && $prodin=="true")
{
echo "Produit déjà sélectionné !";
}
else
{
array_push($caddie,array("prod"=>$_GET['prod']));
header("Location:caddie.php?table=$t");
}
}
else
{
session_register('caddie');
$caddie=array("prod"=>$_GET['prod']);
header("Location:caddie.php?table=$t");
}
}
else //variable prod pas passée
{
header("Location:caddie.php");
}
?>

Page caddie.php:

(pour l'instant je veux juste afficher le contenu du caddy, les calcul c'est pour plus tard)

<?
if(!isset($_SESSION['caddie']))
{
echo "Votre caddie est vide !";
}
else
{
require_once('connexion.php');
$t=$_GET["table"];
$qte=1;
$sql='Select ref,nom,prix FROM '.$t.' WHERE id="'.$_SESSION['caddie']['prod'].'"';
$res=mysql_query($sql) or die ('Erreur SQL!'.$sql.mysql_error());
while($val=mysql_fetch_array($res))
{
echo "<tr>";
?>
<td height="30">&nbsp;</td>
<td height="30"><? echo $val['ref'] ?></td>
<td height="30"><? echo $val['nom'] ?></td>
<td height="30"> <? echo $val['prix'] ?>&nbsp;&euro;</td>
<td height="30">" size="7">

</td>
<td height="30"> &euro;</td>
<?
}
}
echo "</tr>"
?>

4 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
13 juin 2005 à 16:38
alors quelques petites ameliorations de ton code, et le probleme se trouve la je pense, il faudrait remplacer le array_push par le texte en bleu :


Page add_caddie.php:

<? session_start();
if(isset($_GET['prod']))//si id produit
{
$t= $_GET['t'];
if((session_is_registered('caddie')) && (isset($caddie)))

{

$place = array_search($_GET['prod'], $caddie);

}

if ($place === FALSE) { // 3 "=" et pas 2

$caddie["prod"] = $_GET['prod'];

header("Location:caddie.php?table=$t");


} else {
echo "Produit déjà sélectionné !";

}



} else
{
session_register('caddie');
$caddie=array("prod"=>$_GET['prod']);
header("Location:caddie.php?table=$t");
}
}
else //variable prod pas passée
{
header("Location:caddie.php");
}
?>
0
kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006
13 juin 2005 à 17:40
Kida

J'ai tenté la modification que tu m'a proposé mais ce n'est encore pas ça.

$caddie["prod"] = $_GET['prod'];

En fait il me remplace au lieu de m'ajouter.
Mais le problème vient effectivement de array_push()

Je chercher dans ce sens merci de ton aide.
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
14 juin 2005 à 21:30
bah en fait ca depend de comment tu organise ton caddie!



si ton caddie est un tableau qui contient un tableau "prod", et que tu veu ajouter ton produit dedans, alors il faut faire

array_push($caddie["prod"], $_GET["prod"]);



si ton caddie est un tableau qui contient une ligne dont la clé
est "prod", et que tu veu lui affecter la valeur de ton produit,
alors il faut faire

$caddie["prod"], $_GET["prod"];



si ton caddie est un tableau auquel tu veu ajouter un nouveau tableau
(a la fin) qui contiendrait une ligne dont la clé est "prod", et
la valeur est ton $_GET["prod"], alors il faut faire

array_push($caddie, array("prod" => $_GET["prod"]));



array_push($caddie,array("prod"=>$_GET['prod']));
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
14 juin 2005 à 21:32
Rectification :

si ton caddie est un tableau qui contient une ligne dont la clé est
"prod", et que tu veu lui affecter la valeur de ton produit, alors il
faut faire
$caddie["prod"] = $_GET["prod"];
0
Rejoignez-nous