Requete qantite en gestion de stock

Fermé
cristof1 Messages postés 15 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juin 2015 - 26 juin 2015 à 02:37
cristof1 Messages postés 15 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juin 2015 - 28 juin 2015 à 22:41
Salut à tous voila, j'ai un ptit prob avec ma base de donnée mysql

en clair, j'ai des données, ex des quantitées

je les prend

j'en enlève un nombre déterminé

j 'update ma table et j'obtien donc une nouvelle quantité jusque la ça marche, mais j'ai un problème dans les nombre négatif, quand c'est des nombre positif y a pas de problème, ex

j'ai 2 en qt, j'en enlève 20 par ex le résultat dans la base et de - 18 et quand j'en renlève un autre nombre le resultat est toujour de -18, c bizar parce que en positif ça marche et dès que l'on est dans les négatif i veut plus pourtant dans ma base c'est un type "tinyint"

voila mes req


mysql_connect ('localhost', 'root', '');
mysql_select_db ('gestion_stock');

$sql = 'SELECT * FROM produit where quantite > 0 ';
$req = "UPDATE produit set quantite=quantite-$quantite where $matricule= matricule";
mysql_query($sql);
mysql_query($req);
A voir également:

1 réponse

Utilisateur anonyme
26 juin 2015 à 08:45
Bonjour

Ton script a l'ai correct, à condition que $quantite et $matricule soient correctement définis.
Je me demande bien à quoi sert ta requête SELECT ici. J'ai l'impression que tu crois qu'elle va récupérer les valeurs de $quantite et $matricule, mais tel que ton code est écrit, ce n'est pas du tout le cas.
Je pense que ton code ne marche pas du tout, même pour les nombres positifs. Ou alors, si tes variables sont bien définies, il marche aussi bien pour les nombres négatifs.
Peux-tu nous montrer où $quantite et $matricule sont initialisés ?

Remarque complémentaire : il ne faut plus utiliser la bibliothèque mysql_, elle est obsolète. Puisque tu sembles être en train d'apprendre, commence directement avec PDO.
0
cristof1 Messages postés 15 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juin 2015
26 juin 2015 à 16:58
bonjour
ma requete marche bien mais si j'ai une quantite 120 par exemple et je vendu 130 qui ne se trouv pas dans le stock ma rquete va sortir 130 avec -10 qui reste a la stock

observation :
merci pour votre remarque :) c'est gentiel mon pere
a ce qui concerne la requete seLect c'est juste pour clarifier moi je deux page produit sortie
qui contient une liste des produit existant avec la possibilite de transfere je bien effectie la trasfere ms je trouve cette probleme
merci
0
cristof1 Messages postés 15 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juin 2015
Modifié par baladur13 le 28/06/2015 à 22:46
merci mon pere
le but de ma question c'est gere la quantite negatif c'est si j ai dans le stock 120 par exemple et je vent 130 qui n'esiste pas dans la stock ma requete va envoyer 130 avec -10 qui rest a la stock
voila ma requete

<?php
if (isset($_POST['transfer']) && $_POST['transfer'] == 'transfer') { 
      
   mysql_connect ('localhost', 'root', ''); 
      mysql_select_db ('gestion_stock');
   
      $matricule=$_POST['matricule'];
   $nom=$_POST['nom'];
   $designation=$_POST['designation'];
   $dateE=$_POST['dateE'];
   $quantite=$_POST['quantite'];
   $nag=$_POST['nag'];
      $sql = "INSERT INTO produit_sortie (matricule,nom,designation,dateS,quantite,nag)VALUES('$matricule','$nom','$designation',NOW(),'$quantite','$nag')";
   $req = "UPDATE produit set quantite=quantite-$quantite where $matricule=matricule";
      mysql_query($sql);
   mysql_query($req);
      mysql_close(); 
   
         header('Location:sortie.php');
   }
?>
<?php
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "gestion_stock" ) ;
  $quantite=$_POST['quantite'];
   
   $maricule=$_POST["matricule"];
$d="select * from produit where matricule='$matricule'";
$o=mysql_query($d,$cnx)or die( mysql_error() );
$quan = 0;
while($a=mysql_fetch_row($o)){
$quan = $a[5];}
 if ( ($quan<$quantite)||($quan==0))
 { 
  echo'
  <script language="Javascript">
  alert ("la quantite ne pas disponible ");
  </script>';
 
 }
 else{
 ?>
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
0