如何将这个html表值发布到数据库中? (多维数组)

时间:2018-02-19 07:55:11

标签: php arrays multidimensional-array

我创建了一个表,因此用户可以动态添加项目。这是表格:

<table>
<tr class='master_added'>
   <td>
      <input type='text' class='id_act' name='arr_item[id_act]' value='1' />
      <input type='text' class='val_status' name='arr_item[val_status]' value='SENT' />                                     
   </td>                            
   <td>
      <input type='text' name='arr_item[id_item]' class='id_item' value='ITEM_A' />
   </td>
</tr>
<tr class='master_added'>      
   <td>
      <input type='text' class='id_act' name='arr_item[id_act]' value='1' />
      <input type='text' class='val_status' name='arr_item[val_status]' value='SENT' />
      <input type='text' class='id_act' name='arr_item[id_act]' value='3' />
      <input type='text' class='val_status' name='arr_item[val_status]' value='RECEIVED' />                                 
   </td>                            
   <td>
      <input type='text' name='arr_item[id_item]' class='id_item' value='ITEM_B' />
   </td>
</tr>
<tr class='master_added'>
   <td>
      <input type='text' class='id_act' name='arr_item[id_act]' value='2' />
      <input type='text' class='val_status' name='arr_item[val_status]' value='DELAYED' />                                      
   </td>                            
   <td>
      <input type='text' name='arr_item[id_item]' class='id_item' value='ITEM_B' />
   </td>
</tr>
</table>

如何使用多维数组将此表值发布到数据库中?我创建的数组是否是正确的数组或易于操作for循环?

这是插入数据库后的数据:

t_item_master
ID_INSERT    ID_ITEM
1             ITEM_A
2             ITEM_B
3             ITEM_B

t_item_detail
ID_INSERT   ID_ACT        ACT_VALUE
1                1             SENT
2                1             SENT
2                3         RECEIVED
3                2          DELAYED

注意:我想在t_item_master上使用ID_INSERT上的t_item_detail上的最后一次插入ID

1 个答案:

答案 0 :(得分:1)

你差不多了。输入字段需要指定它们是数组。您可以通过在名称末尾添加[]来实现,例如:

<input type='text' class='id_act' name='arr_item[id_act][]' value='2' />

注意[]中的arr_item[id_act][],它允许你在php中循环。对于这个变量,你可以像这样在php中循环:

<?php 
foreach($_POST['arr_item']['id_act'] as $id_act) {
  echo $id_act;
}
?>

要在MySQL中使用最后一个INSERT ID,可以使用MySQL函数LAST_INSERT_ID()。从示例中给出https://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html您可以进行查询:

INSERT INTO t_item_detail (ID_INSERT, ID_ACT, ACT_VALUE)
    VALUES(null, value,'value'); 
INSERT INTO t_item_master (ID_INSERT, ID_ITEM)
    VALUES(LAST_INSERT_ID(),'value');