具有相同名称的多个输入字段。如何将它们全部保存到db中

时间:2013-09-05 01:23:11

标签: php mysql arrays

我正在尝试使用三种不同类型的相同名称字段存储数据

<td><input name="itemname[]" value="ball" ></td>
<td><input name="itemname[]" value="racket" ></td>
<td><input name="itemname[]" value="shoes" ></td>
<td><input  name="subitem[]" value="big"></td> 
<td><input  name="subitem[]" value="grenn"></td>
<td><input  name="subitem[]" value="sports"></td>
<td><input name="quantity[]" value="10"></td>
<td><input name="quantity[]" value="10"></td>
<td><input name="quantity[]" value="10"></td>

现在我尝试将它们插入到表格中#selected_items&#39;我想要类似的东西

itemname | subitem |量

球-------大------ 10

球拍-----绿色---- 10

鞋子------运动---- 10

请帮帮我

编辑

我尝试使用foreach

foreach($_POST['quantity'] as $val) {

$sql2 = "INSERT INTO items_selected (jobsheet_id,item_name,subitem,quantity) VALUES ('$jobid','aaa', 'bbb', '{$val}')";

if (!mysqli_query($this->con,$sql2))
                {
                    die('Error: ' . mysqli_error($this->con));
                }

}

上面代码中的问题,我只能插入一个列值。如何从post数组中插入其他列的值

谢谢

2 个答案:

答案 0 :(得分:1)

这非常简单....您将所有信息作为数组发布。

您显然希望每次都插入3个数据库条目。 (你可以通过三个不同的名字来简化生活)

因此,在php检索页面上,您将执行以下操作。

<?php

CONNECT TO DATABASE

$itemname = $_POST['ball'];
$subitem = $_POST['racket'];
$quantity = $_POST['racket'];

foreach($itemname as $itemname):
foreach($subitem as $subitem):
foreach($quantity as $quantity):

SQL QUERY HERE INSERTING $itemname, $subitem, $quantity

endforeach;
endforeach;
endforeach;

Close SQL Connection

?>

以上代码将拍摄9个SQL查询,这是您可以获得的组合数量。您当然可以检查是否有任何值为空,而不是跳过插入。不太清楚这一点是什么,请告诉我你是否需要更多的帮助。

答案 1 :(得分:1)

好的,我已经解决了。感谢其他试图帮助我的人

$quanity = count($_POST['quantity']);

$item = $_POST['itemname'];
$sub = $_POST['subitem'];
$qty = $_POST['quantity'];

for($i=0;$i<$quanity;$i++){
echo $item[$i].' '.$sub[$i].' '.$qty[$i];
// you can also use insert sql query
}