0

1つの投稿で最初のテーブルに1行、2番目のテーブルに多くの行を挿入するにはどうすればよいですか?

たとえば、最初のテーブルはメインテーブルで、2番目のテーブルはサブテーブルです。

1番目のテーブル->>請求書 2番目のテーブル->> sub_invoices

各請求書は、1つまたは複数のサブ請求書にリンクされています。

したがって、1つの投稿のデータを2つのテーブルに挿入し、1つの行を請求書に挿入し、 1つまたは複数のデータをsub_invoicesに挿入する必要があります。

請求書:: 、、、、、、、、、、、invoice_id_ date_ total_ drvr_name_ mobile_ car_no_tofromusername

sub_invoices :: 、、、、、、、、、、、、、、invoice_id_ contract_no_ inv_sub_no_ dest_ contract_vlu_ advncd_sum_ late_sum_ discount_extra_ rcvd_sum_notesjob_no

if(isset($_POST['addinvoice2']) and $_POST['addinvoice2'] == 'addinvoice2'){
            //invoices::
            $drvr_name = $_POST['drvr_name'];
            $mobile = $_POST['mobile'];
            $car_no = $_POST['car_no'];
            $to = $_POST['to'];
            //sub_invoices::
             foreach($_POST['contract_no'] as $index => $contractno) {

                    $contract_no = $contractno;
                    $inv_sub_no = $_POST['inv_sub_no'][$index];
                    $dest = $_POST['dest'][$index];
                    $contract_vlu = $_POST['contract_vlu'][$index];
                    $advncd_sum = $_POST['advncd_sum'][$index];
                    $late_sum = $_POST['late_sum'][$index];
                    $discount_extra = $_POST['discount_extra'][$index];
                    $rcvd_sum = $_POST['rcvd_sum'][$index];
                    $notes = $_POST['notes'][$index];
                    $job_no = $_POST['job_no'][$index];
             } 


                $date=date('d-m-y h:iA');

                $MAIN = mysql_query("INSERT INTO `invoices`(`invoice_id`, `date`, `total`, `drvr_name`, `mobile`, `car_no`, `to`, `from`, `username`)
                 VALUES
                 ('','$date','','$drvr_name','$mobile','$car_no','$to','','') 
                ") or die(mysql_error());



                $last_id_in_invoices = mysql_insert_id();

                $SUB = "INSERT INTO `sub_invoices`
                (`invoice_id`, `contract_no`, `inv_sub_no`, `dest`, `contract_vlu`, `advncd_sum`, `late_sum`,
                 `discount_extra`, `rcvd_sum`, `notes`, `job_no`) 
                VALUES ($last_id_in_invoices,$contract_no,$inv_sub_no,$dest,$contract_vlu,$advncd_sum,$late_sum,$discount_extra,$rcvd_sum,$notes,$job_no)";



                $RESULT_SUB = mysql_query($SUB);

                if (isset($MAIN, $RESULT_SUB)){
                    die ("
                        <center>Done Successfully!</center>
                        ");
                }
            }
4

1 に答える 1

0

確かに 2 つの挿入ステートメントを使用することになりますが、なぜこのようなことをしないのでしょうか?

INSERT INTO INVOICES....  and INSERT INTO SUB_INVOICES...(perhaps in a loop)
于 2012-05-15T18:04:47.733 に答える