0

PHP - Xampp/Mysql への挿入

このような挿入PHPで製品データベースを作成しています

  $save_sale = mysql_query("INSERT INTO sale(no_receipt,no_confirm,time,date,day,total) values
         ('$_POST[no_receipt]',
          '$_POST[no_confirm]',
          '$hour_now',
          '$date_now',
          '$day_now',
          '$_POST[total]')")
         or die(mysql_error());
  $save_sale_detail =  mysql_query("INSERT INTO sale_detail(no_receipt,id_product,quantity,price,subtotal) values
         ('$_POST[no_receipt]',
          '$_POST[id_product]',
          '$_POST[quantity]',
          '$_POST[price]',
          '$_POST[subtotal]')")
         or die(mysql_error());

しかし、数量、価格、小計が異なる複数の製品注文を送信するたびに、トランザクションが1つ節約されます。私は、セールの保存とno_receiptの作成、そしてsale_detailのno_receiptの作成のようなものを意味してました。例:セール

     No. Receipt  = 001
     No. Confirm  = 205850 <-- it just confirmation order
     hour         = 17.00
     date         = 31/08/2013
     day          = saturday
     total        = $770 <-- subtotal calculation

     sale_detail
     No. Receipt  = 001
     id_product   = 1 <-- let say it's a hat
     quantity     = 3
     price        = $150 <-- price by each product
     subtotal     = $450 <-- price * quantity
     ----- and come other product order ---
     sale_detail
     No. Receipt  = 001
     id_product   = 4 <-- let's say it's a glasses
     quantity     = 4
     price        = $80 <-- price by each product
     subtotal     = $320 <-- price * quantity
     ----- and come other.. ---------------

しかし、私は立ち往生し、1 つのトランザクションを保存することできます。

任意の助けをいただければ幸いです..

4

1 に答える 1

0

製品ごとの詳細を配列として POST する必要があります。使用するマークアップで<input name="id_product[]"..../>

これは、PHP で配列として受信されます (echo gettype($_POST['id_product'])出力されますarray)。

次に、foreach ($_POST['id_product'] as $id)または何か他のものをループして、INSERT INTO sale_detail...クエリを複数回呼び出すことができます (ループの反復ごとに 1 回)。

実際にはアイテムごとの値[]の属性のみを入れたいことに注意してください。nameたとえば、no_invoiceフィールドは配列ではなく単一の値であるため、name="no_invoice"and notを使用するだけname="no_invoice[]"です。

于 2013-08-31T05:59:08.520 に答える