Problème de mise à jour de données sql

Lilipi -  
 Utilisateur anonyme -
Bonjour,
Je dois réaliser une boutique en ligne pour un projet de fac.
J'ai donc créé un site qui affiche tous les produits, quantités dispo etc, ainsi qu'une base de donnée contenant toutes les infos.
j'ai donc un champ "quantite" qui doit diminuer à chaque validation de commande, seulement ma quantité inscrite dans ma base de données ne change pas.
Merci de m'aider.

Voici le code de la page de commande :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<link rel="stylesheet" type="text/css" href="accueil.css" />
<title>Livre choisi :</title>
</head>

<body>
<?php include ("titre.php");?>
<?php include("menu.php");?>
<?php include ("inscription.php");
if (isset($_GET['id']) )
{
$affi=$_GET['id'];
};?>

<body>
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=bibliothèque', 'root', 'root', $pdo_options);

// On récupère tout le contenu de la table livre
$reponse = $bdd->query("SELECT * FROM livre WHERE id = '$affi'");
$donnees = $reponse->fetch();
?>
<div id="corps">
<p>
<h1 div class="titre_D"><?php echo $donnees['titre']; ?></h1>
<h2 div class="auteur_D"><?php echo $donnees['auteur']; ?></h2>
<br/>
<br/>
<br/>
<div class="image_D"><img src="<?php echo $donnees['image']; ?>" width="150px"/></div>
<h3 class="mot_edi">Mot de l'éditeur : </h3>
<p div class="description_D"><?php echo $donnees['description'];?></p>
<h3 class="titre_desc">Catégorie : </h3>
<div class="type_D"><?php echo $donnees['type']; ?></div>
<h3 class="titre_desc">Edition : </h3>
<div class="type_D"><?php echo $donnees['edition']; ?></div>
<h3 class="titre_desc">Prix : </h3>
<div class="type_D"><?php echo $donnees['prix']; ?> euros</div>
<h3 class="titre_desc">Quantité disponible : </h3>
<div class="type_D"><?php echo $donnees['quantite']; ?> en stock</div>
</p>
<form method="post" action="acheter.php">
<h3 class="titre_desc"> Quantité désirée:
</h3>
<select name="q_achat">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<br/>
<button type="submit">
<img src="valider.jpg" alt="livre" width="50" height="38" /> Valider
</button>
</form>
<?php
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
</div>
</body>


et voici la page censée traitée la gestion du stock :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<body>
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=bibliothèque', 'root', 'root', $pdo_options);

if (isset($_GET['id']) )
{
$affi=$_GET['id'];
};

$q=$_POST['q_achat'];



$reponse = $bdd->query("UPDATE livre SET 'quantite'= 'quantite'-'$q' WHERE id = '$affi'");

?>
</body>


Merci d'avance,
Ps : je ne maitrise pas bien mysql :s


A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour,

essayez ceci :

"UPDATE livre SET quantite= (quantite-$q) WHERE id = '$affi'"

si votre id est une chaîne et ceci si votre id est un nombre

"UPDATE livre SET quantite= (quantite-$q) WHERE id = $affi"
0