0

mysql DB の在庫レベルを更新するために使用しようとしているフォームがあります。

relcopy.jsフォームには、必要に応じてフォームの行数を増やすために使用するjquery pluginがあります。テキスト ボックスの入力に [] 角​​かっこを追加して、投稿時に配列として取得されるlst_Product[]ようにしました。

フォーム ページは、次のコードを含む挿入ページに投稿します。在庫レベルを更新して新しい値を挿入したい必要な製品を選択することを目的としています。

入力フォームから 1 行を投稿して更新すると、コードは正常に動作します。入力フォームから 3 行を投稿すると、3 番目のエントリのみが更新されます。

ここで「foreachまたはwhile」のシナリオで間違っているのではないかと思いますが、それを解決する方法について困惑しています。あなたの一人が私を正しい方向に向けることができれば幸いです。mysqli 拡張機能のアプローチを引き続き使用したいと考えています。

<?php session_start();?>

<?php require_once('../Connections/connpay.php'); ?>
<?php require_once('../functions/global_functions.php'); ?>
<?php require_once('../functions/account_functions.php'); ?> 
<?php
foreach ($_POST['lst_product']as $row=>$product_id);

//$product_id = clean_data($_POST['lst_product']);
$quantity = clean_data($_POST['txt_quantity'][$row]);
$company_id = clean_data($_POST['hidden_company_id']);
 ?>
 <?php 
 //Lets connect to the database
 if(mysqli_connect_errno()){
     exit("Failed to connect to the database".mysqli_connect_error());}
 ?>
 <?php 
    $query = "SELECT product_id,stock_level,item_cost FROM acc_stock_items WHERE company_id = '$company_id' AND product_id = '$product_id'";
 $result = $conn->query($query);
 while ($row = $result->fetch_assoc())
 if (!empty($row['product_id'])){
     $current_stock = $row['stock_level'];
      $update_quantity = ($current_stock + $quantity);

        $query = "UPDATE acc_stock_items SET stock_level = '$update_quantity' WHERE product_id = '$product_id'";


 if ($conn->query($query)===TRUE){
    //Header("Location:../view_stock_items.php");
echo"all good";}
  else {
      echo "Error:".$conn->error;
  }
   }
$conn->close();
 ?>
 <?php print_r($query)?>
 Selected list item is :<?php echo $product_id;?><br>
The company id is: <?php echo $company_id;?>

それは私の問題です

4

0 に答える 0