Mysql 如何编写代码,以便在销售产品后更新库存

Mysql 如何编写代码,以便在销售产品后更新库存,mysql,Mysql,我已经为我的sales\u invoice.php if(isset($_POST['submit1'])){ // $cat_array = $_POST['category_name']; // $qua_array = $_POST['quantity']; //$mrp_array = $_POST['mrp']; //$vat_array = $_POST['vat']; // print_r($_POST); if(!empty($_POST['

我已经为我的
sales\u invoice.php

           if(isset($_POST['submit1'])){

// $cat_array = $_POST['category_name'];

// $qua_array = $_POST['quantity'];

 //$mrp_array = $_POST['mrp'];

 //$vat_array = $_POST['vat'];

// print_r($_POST);

if(!empty($_POST['item_name']) && is_array($_POST['item_name'])){

    $name_array =$_POST['item_name'];
    //print_r($name_array);
 for($j=0; $j< count($name_array);$j++){

$name = mysql_real_escape_string($name_array[$j]);
//echo $name;
//$n = explode('/',$name);

 $sql = "select quantity from purchase_stock where item_name = '$name'";  
// echo $sql;

$res = mysql_query($sql) or die(mysql_error());

$num_rows = mysql_num_rows($res);

if($num_rows <=0){

echo "<b>not in stock</b>";

exit();

}
else

continue;

}
}
 $sql = "insert into material_inv set order_date='$new_date', due_date='$new_date1', dealer='".$_POST['dealer']."', customer='".$_POST['customer']."'";

// echo $sql;



 $res = mysql_query($sql) or die(mysql_error());

 if($res == true){

echo "sales invoice created";
 }
 else
 {
 echo "error";
 }
 $myid = mysql_insert_id();

 $sales_id = $myid;
 //display_item();

// print_r($_POST);

if (!empty($_POST['category_name']) && !empty($_POST['item_name']) && !empty($_POST['quantity']) && !empty($_POST['mrp']) && !empty($_POST['vat']) &&
   is_array($_POST['category_name']) && is_array($_POST['item_name']) && is_array($_POST['quantity']) && is_array($_POST['mrp']) && is_array($_POST['vat'])){


  // echo 'start';
 $name_array = $_POST['item_name'];

 $cat_array = $_POST['category_name'];
 $qua_array = $_POST['quantity'];
 $mrp_array = $_POST['mrp'];
 $vat_array = $_POST['vat'];
 //print_r($mrp_array);

  for ($i = 0; $i < count($name_array); $i++) {

        $name = mysql_real_escape_string($name_array[$i]);

        $cat = mysql_real_escape_string($cat_array[$i]);

        $q = mysql_real_escape_string($qua_array[$i]);

        $mrp = mysql_real_escape_string($mrp_array[$i]);

        //echo $mrp;

        $vat = mysql_real_escape_string($vat_array[$i]);

       // mysql_query("INSERT INTO users (name, age) VALUES ('$name', '$age')");

      $sql ="Insert into material_items SET category_name='$cat', item_name='$name', quantity='$q',
       mrp='$mrp', vat='$vat', inv_id ='$sales_id'";

// echo $sql;

       $res = mysql_query($sql) or die(mysql_error());

       $sql1 = "Update stock set quantity=quantity -'$q' where item_name='$name'";
       $res1 = mysql_query($sql1) or die(mysql_error());
       echo "stock updated and invoice created";
    }  


} 
 } 
if(isset($\u POST['submit1'])){
//$cat_array=$_POST['category_name'];
//$qua_数组=$_POST['quantity'];
//$mrp_数组=$_POST['mrp'];
//$vat_数组=$_POST['vat'];
//打印(邮政美元);
if(!empty($\u POST['item\u name'])和&is\u数组($\u POST['item\u name'])){
$name\u array=$\u POST['item\u name'];
//打印(名称数组);
对于($j=0;$j如果($num_rows,这里是一个存储过程语法示例

DELIMITER //
CREATE PROCEDURE GetProduct(IN param_ProductID INT)
    BEGIN
        SELECT * 
        FROM Products
        WHERE ProductID = param_ProductID;

    END //
DELIMITER ;
下面是从php中调用它的方式:

$mysqli->query("CALL GetProduct(".$param_ProductID.")");
关于您关于插入产品的问题, 您需要执行UPSERT(如果不存在则插入,如果存在则更新) 下面是一个如何执行此操作的示例:


希蒙:)

您的代码对于注入来说不安全!这是怎么回事?我使用了mysql\u real\u escape\u string函数使其安全…………好的。这对桌面应用程序重要吗?我的桌面应用程序仅由一个用户使用……关于库存和销售的第一个问题是什么?您的意思是我不需要为库存编写插入查询吗表格在这里?我需要这里的帮助。我很高兴听到有必要使用外键链接销售和库存表格吗?如果是,它们中的哪一个是父表,哪一个是子表?没有。为什么要这样做?它们之间的父子关系是什么?我没有看到任何。。。