PHP - 将相同的字段插入mysql

时间:2013-08-31 04:38:25

标签: php mysql sql

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());

但每次我提交具有不同数量,价格和小计的多重产品订单时,它只保存一笔交易。 我的意思是销售保存并创建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.. ---------------

但我卡住了,只能保存一笔交易,如果销售_detail 成功保存,促销仍然是空的。

任何帮助都会受到赞赏..

1 个答案:

答案 0 :(得分:0)

您需要将每个产品的详细信息作为数组发布。在标记中,您将使用<input name="id_product[]"..../>

这将在PHP中作为数组接收(echo gettype($_POST['id_product'])将输出array)。

然后您可以使用foreach ($_POST['id_product'] as $id)或其他内容进行循环,并多次调用INSERT INTO sale_detail...查询(每次循环迭代一次)。

请注意,您只想将[]放在实际为每个项目的值的name属性中。例如,no_invoice字段是单个值,而不是数组,因此您只需使用name="no_invoice"而不是name="no_invoice[]"