Page 1 sur 1

Panier en quantité négative

Posté : 30 avr. 2008, 17:58
par Dipsy
Bonjour.

Je suis confronté à un pb que je n'arrive pas à résoudre.
J'ai récupéré un script de vente en ligne (1two ecommerce modifié) mais celui-ci comporte un bug.
En fait, lorsque l'on modifie la quantité d'un produit avec des boutons + et - ,
il est possible d'entrer des quantités négatives.
Je souhaiterai les rendre nulle ou mieux supprimer ce produit du panier.
Si quelqu'un a une soluce.
Merci.

la portion en question
		//recalcul ****************************
if ($action=="ote")
		{	
$query="SELECT * FROM 1two_ecommerce_caddie WHERE client_ip='" . $_SESSION["client_ip"] . "' and compteur='$item' and heure_ins='" . $_GET["heure"] . "'";
$res_ajout = @mysql_query($query,$db);
$list_caddie=@mysql_fetch_row($res_ajout);
{
$ajout = $list_caddie[3] - 1 ; 
}

$query="UPDATE 1two_ecommerce_caddie SET quantite= '$ajout' WHERE client_ip='" . $_SESSION["client_ip"] . "' and compteur='$item' and heure_ins='" . $_GET["heure"] . "'";
$modif_ajout = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); 
				
				}	
Le code que j'ai essayé mais qui ne fonctionne pas :
if ($action=="ote")
		{	
$query="SELECT * FROM 1two_ecommerce_caddie WHERE client_ip='" . $_SESSION["client_ip"] . "' and compteur='$item' and heure_ins='" . $_GET["heure"] . "'";
$res_ajout = @mysql_query($query,$db);
$list_caddie=@mysql_fetch_row($res_ajout);

if ($list_caddie > 0)
	{
	$ajout = $list_caddie[3] - 1 ; 
	}

if ($list_caddie = 0)
	{
	$ajout = $list_caddie[3] ; 
	}		


$query="UPDATE 1two_ecommerce_caddie SET quantite= '$ajout' WHERE client_ip='" . $_SESSION["client_ip"] . "' and compteur='$item' and heure_ins='" . $_GET["heure"] . "'";
$modif_ajout = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); 
			
	}

Posté : 30 avr. 2008, 18:05
par Ryle
Je n'ai pas regardé en détail, mais l'opérateur de comparaison est == et non = qui sert à l'affectation
if ($list_caddie = 0) 

Posté : 30 avr. 2008, 18:14
par Dipsy
Merci Ryle,

J'ai bien effectué cette modif, mais ça ne résoud pas le pb.
Je peux toujours affecter des quantités négatives.
En fait, je souhaiterai le bloquer à 0 et pas -1, -2, …

Merci de ton aide.

Je travaille en local mais une boutique de même type existe à cette adresse
si ça peut aider !

http://synchropessac.free.fr/boutique/

Posté : 30 avr. 2008, 18:17
par Ryle
Il te suffit dans ce cas de rajouter un simple test là où tu en as besoin pour que la quantité reste à 0 si jamais elle passe en négatif :
if ($ta_quantité < 0) {
  $ta_quantité = 0;
}

Posté : 02 mai 2008, 09:14
par Dipsy
Merci, j'ai trouvé la solution.
if ($list_caddie[3] > 0)
	{
	$ajout = $list_caddie[3] - 1 ; 	
	}	

if ($list_caddie[3] == 1)
	{
	$ajout = 1 ; 
	}
A+

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]