簡體   English   中英

在另一個表中刪除和插入新數據后更新一個表

[英]Update one table after deleting and inserting new data in another table

我想要:

  1. 在表tbl_cost_sharing中刪除和插入數據

  1. 單擊編輯按鈕時更新表tbl_payment_request

我在下面編寫的代碼只是在做 (1) 即刪除和插入表tbl_cost_sharing中的數據而不是 (2) 即更新表tbl_payment_request 當我運行它時,代碼沒有顯示任何錯誤。

    if($_POST['btn_action'] == 'Edit')
    {
        $delete_query =
            "
                DELETE FROM
                  tbl_cost_sharing
                WHERE
                  payment_request_id = '".$_POST["payment_request_id"]."'
            "
        ;
        $statement = $connect->prepare($delete_query);
        $statement->execute();
        $delete_result = $statement->fetchAll();

        if(isset($delete_result))
        {

            $total_amount = 0;
            for($count = 0; $count<count($_POST["protocol_id"]); $count++)
            {
                $protocol_details = fetch_protocol_details($_POST["protocol_id"][$count], $connect);
                $sub_query =
                    "
                        INSERT INTO
                            tbl_cost_sharing
                                    (
                                        payment_request_id,
                                        crs_site_id,
                                        protocol_id,
                                        budget_class_id,
                                        cost_sharing_amount
                                    )
                            VALUES
                                    (
                                        :payment_request_id,
                                        :crs_site_id,
                                        :protocol_id,
                                        :budget_class_id,
                                        :cost_sharing_amount
                                    )
                    "
                ;
                $statement = $connect->prepare($sub_query);
                $statement->execute
                    (
                        array
                        (
                            ':payment_request_id'       =>  $_POST["payment_request_id"],
                            ':crs_site_id'              =>  $_POST["crs_site_id"][$count],
                            ':protocol_id'              =>  $_POST["protocol_id"][$count],
                            ':budget_class_id'          =>  $_POST["budget_class_id"][$count],
                            ':cost_sharing_amount'      =>  $_POST["cost_sharing_amount"][$count]
                        )
                    )
                ;
                $total_amount = $total_amount + $_POST["cost_sharing_amount"][$count];
            }

            $update_query =
                "
                    UPDATE
                        tbl_payment_request
                    SET
                        'department_id'         = :department_id,
                        'payee_id'              = :payee_id,
                        'payment_type_id'       = :payment_type_id,
                        'currency_type_id'      = :currency_type_id,
                        'payment_details'       = :payment_details
                        'payment_request_total' = :payment_request_total
                        'sig_1'                 = :sig_1,
                        'sig_2'                 = :sig_2,
                        'sig_3'                 = :sig_3,
                        'sig_4'                 = :sig_4,
                        'sig_5'                 = :sig_5,
                        'sig_6'                 = :sig_6,
                        'app_1'                 = :app_1,
                        'app_2'                 = :app_2,
                        'app_3'                 = :app_3,
                        'app_4'                 = :app_4,
                        'app_5'                 = :app_5,
                        'app_6'                 = :app_6
                    WHERE
                        'payment_request_id'    = :payment_request_id
                "
            ;
            $statement = $connect->prepare($update_query);
            $statement->execute
                (
                    array
                        (
                            ':department_id'            =>  $_POST["department_id"],
                            ':payee_id'                 =>  $_POST["payee_id"],
                            ':payment_type_id'          =>  $_POST["payment_type_id"],
                            ':currency_type_id'         =>  $_POST["currency_type_id"],
                            ':payment_details'          =>  $_POST["payment_details"],
                            ':payment_request_total'    =>  $total_amount,
                            ':sig_1'                    =>  $_POST["sig_1"],
                            ':sig_2'                    =>  $_POST["sig_2"],
                            ':sig_3'                    =>  $_POST["sig_3"],
                            ':sig_4'                    =>  $_POST["sig_4"],
                            ':sig_5'                    =>  $_POST["sig_5"],
                            ':sig_6'                    =>  $_POST["sig_6"],
                            ':app_1'                    =>  $_POST["app_1"],
                            ':app_2'                    =>  $_POST["app_2"],
                            ':app_3'                    =>  $_POST["app_3"],
                            ':app_4'                    =>  $_POST["app_4"],
                            ':app_5'                    =>  $_POST["app_5"],
                            ':app_6'                    =>  $_POST["app_6"],
                            ':payment_request_id'       =>  $_POST["payment_request_id"]
                        )
                )
            ;
            $result = $statement->fetchAll();
            if(isset($result))
            {
                echo 'Payment request updated';
            }

        }

    }

我發現了我在哪里犯了錯誤;

我不應該把''放在SET字段上,例如

            $update_query =
                "
                    UPDATE
                        tbl_payment_request
                    SET
                        'department_id'         = :department_id,
                        'payee_id'              = :payee_id,

相反,它應該像下面這樣:

            $update_query =
                "
                    UPDATE
                        tbl_payment_request
                    SET
                        department_id         = :department_id,
                        payee_id              = :payee_id,

我也離開了,:payment_request_total:payment_details如下:

            $update_query =
                "
                    UPDATE
                        tbl_payment_request
                    SET
                        'department_id'         = :department_id,
                        'payee_id'              = :payee_id,
                        'payment_type_id'       = :payment_type_id,
                        'currency_type_id'      = :currency_type_id,
                        'payment_details'       = :payment_details
                        'payment_request_total' = :payment_request_total

暫無
暫無

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

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