簡體   English   中英

Array to String Conversion Error: 如何解決PHP中的這個錯誤,我已經提供了代碼的控制流程

[英]Array to String Conversion Error: How to solve this error in PHP, I have provided the control flow of code

保存銷售后出現錯誤,更新產品功能發生錯誤,當我更新產品時,此功能工作正常,但是當我嘗試使用 edit-sales 更新產品時,它給了我這個錯誤。

  1. 錯誤
  2. 錯誤所在的代碼

圖 1 是我在保存編輯后的銷售后遇到的錯誤.. 圖 2 是發生錯誤的代碼..

這是 controller.sales(正在調用 model.edit-sales)

static public function ctrEditSale(){

    if(isset($_POST["editSale"])){

        /*=============================================
        FORMAT PRODUCTS AND CUSTOMERS TABLES
        =============================================*/
        $table = "sales";

        $item = "code";
        $value = $_POST["editSale"];

        $getSale = ModelSales::mdlShowSales($table, $item, $value);

        /*=============================================
        CHECK IF THERE'S ANY EDITED SALE
        =============================================*/


        if($_POST["productsList"] == ""){

            $productsList = $getSale["products"];
            $productChange = false;


        }else{

            $productsList = $_POST["productsList"];
            $productChange = true;
        }

        if($productChange){

            $products =  json_decode($getSale["products"], true);

            $totalPurchasedProducts = array();

            foreach ($products as $key => $value) {             

                array_push($totalPurchasedProducts, $value["quantity"]);    

                $tableProducts = "products";

                $item = "id";
                $value1 = $value["id"];
                $order = "id";

                $getProduct = ProductsModel::mdlShowProducts($tableProducts, $item, $value1, $order);                   

                $item1a = "sales";
                $value1a = $getProduct["sales"] - $value["quantity"];

                $newSales = ProductsModel::mdlUpdateProduct($tableProducts, $item1a, $value1a, $value);

                $item1b = "stock";
                $value1b = $value["quantity"] + $getProduct["stock"];

                $stockNew = ProductsModel::mdlUpdateProduct($tableProducts, $item1b, $value1b, $value);

            }

            $tableCustomers = "customers";

            $itemCustomer = "id";
            $valueCustomer = $_POST["selectCustomer"];

            $getCustomer = ModelCustomers::mdlShowCustomers($tableCustomers, $itemCustomer, $valueCustomer);

            $item1a = "purchases";
            $value1a = $getCustomer["purchases"] - array_sum($totalPurchasedProducts);

            $customerPurchases = ModelCustomers::mdlUpdateCustomer($tableCustomers, $item1a, $value1a, $valueCustomer);

            /*=============================================
            UPDATE THE CUSTOMER'S PURCHASES AND REDUCE THE STOCK AND INCREMENT PRODUCT SALES
            =============================================*/

            $productsList_2 = json_decode($productsList, true);

            $totalPurchasedProducts_2 = array();

            foreach ($productsList_2 as $key => $value) {

                array_push($totalPurchasedProducts_2, $value["quantity"]);
                
                $tableProducts_2 = "products";

                $item_2 = "id";
                $value_2 = $value["id"];
                $order = "id";

                $getProduct_2 = ProductsModel::mdlShowProducts($tableProducts_2, $item_2, $value_2, $order);

                $item1a_2 = "sales";
                $value1a_2 = $value["quantity"] + $getProduct_2["sales"];

                $newSales_2 = ProductsModel::mdlUpdateProduct($tableProducts_2, $item1a_2, $value1a_2, $value_2);

                $item1b_2 = "stock";
                $value1b_2 = $getProduct_2["stock"] - $value["quantity"];

                $newStock_2 = ProductsModel::mdlUpdateProduct($tableProducts_2, $item1b_2, $value1b_2, $value_2);

            }

            $tableCustomers_2 = "customers";

            $item_2 = "id";
            $value_2 = $_POST["selectCustomer"];

            $getCustomer_2 = ModelCustomers::mdlShowCustomers($tableCustomers_2, $item_2, $value_2);

            $item1a_2 = "purchases";
            $value1a_2 = array_sum($totalPurchasedProducts_2) + $getCustomer_2["purchases"];

            $customerPurchases_2 = ModelCustomers::mdlUpdateCustomer($tableCustomers_2, $item1a_2, $value1a_2, $value_2);

            $item1b_2 = "lastPurchase";

            date_default_timezone_set('America/Bogota');

            $date = date('Y-m-d');
            $hour = date('H:i:s');
            $value1b_2 = $date.' '.$hour;

            $dateCustomer_2 = ModelCustomers::mdlUpdateCustomer($tableCustomers_2, $item1b_2, $value1b_2, $value_2);

        }

        /*=============================================
        SAVE PURCHASE CHANGES
        =============================================*/ 

        $data = array("idSeller"=>$_POST["idSeller"],
                       "idCustomer"=>$_POST["selectCustomer"],
                       "code"=>$_POST["editSale"],
                       "products"=>$productsList,
                       "tax"=>$_POST["newTaxPrice"],
                       "netPrice"=>$_POST["newNetPrice"],
                       "totalPrice"=>$_POST["saleTotal"],
                       "paymentMethod"=>$_POST["listPaymentMethod"]);


        $answer = ModelSales::mdleditSale($table, $data);

        if($answer == "ok"){

            echo'<script>

            localStorage.removeItem("range");

            swal({
                  type: "success",
                  title: "The sale has been edited correctly",
                  showConfirmButton: true,
                  confirmButtonText: "Close"
                  }).then((result) => {
                            if (result.value) {

                            window.location = "sales";

                            }
                        })

            </script>';

        }

    }

}

上面的代碼正在使用數據調用模型編輯銷售來更新數據庫

這是模型編輯銷售方法

mdl:editsale

您將最后一個屬性放入所有數組$value ,您只需要放入 id $value['id']

$item1a = "sales";
$value1a = $getProduct["sales"] - $value["quantity"];

$newSales = ProductsModel::mdlUpdateProduct($tableProducts, $item1a, $value1a, $value['id']);

$item1b = "stock";
$value1b = $value["quantity"] + $getProduct["stock"];

$stockNew = ProductsModel::mdlUpdateProduct($tableProducts, $item1b, $value1b, $value['id']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM