我创建了一个表,因此用户可以动态添加项目。这是表格:
<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
答案 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');