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

Fermé
Lilipi - 13 avril 2011 à 18:45
 Utilisateur anonyme - 15 avril 2011 à 11:21
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
15 avril 2011 à 11:21
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