【发布时间】:2013-10-09 05:26:43
【问题描述】:
我正在尝试建立一个库存系统来跟踪我公司的一些产品。它不是在线商店或任何东西,只是我跟踪运输中、电工卡车库存中或办公室中的产品的一种方式。
我已经建立了一些页面来显示当前的库存水平,包括处于不确定状态的物品(运送到技术人员或办公室)、技术人员拥有的物品以及办公室里的物品。我还可以查看每种技术的库存。现在,当我们的供应商直接发货时,我只需要一种方法将产品分配到其中一个位置。
“插入库存”页面有一个表单,显示我们跟踪的每个项目的字段,旁边还有一个数量框。它还有一个选择框,用于选择将库存分配到什么以及下一步打算去哪里。 (例如:运输 -> 技术)
所以,它可能看起来像这样:
选择位置类型选择列表
选择前往选择列表
12/2 室内线(只读)............数量字段
10/2 室外电缆(只读)......................数量字段
提交按钮
此页面上实际上将有大约 60 种产品。理想情况下,如果他们将 10 放在 12/2 线字段中,它将向数据库中插入 10 条记录:
id(AI)、product_id、location_type_id、location_going_id、日期
如果我将 3 放在 10/2 数量上,那么它也会插入 3 条记录。
这是我的表单的代码。现在没有什么其他的了。
<form action="insert2.php" id="form1" name="form1" method="POST">
<table width="500" border="0">
<tr>
<td><input name="product_name[]" type="text" value="10/2 Outdoor Cable" readonly="readonly"></td>
<td><input name="qty[]" type="text" size="5"></td>
</tr>
<tr>
<td><input name="product_name[]" type="text" value="12/2 Indoor Wire" readonly id="product_name[]"></td>
<td><input name="qty[]" type="text" size="5" id="qty[]"></td>
</tr>
</table>
<p>
<input type="submit" name="submit" id="submit" value="Submit">
</p>
</form>
然后我让它进入第二页以将其插入数据库:
<?php
for($i = 0; $i < count($_POST['product_name']); $i++) {
$product = $_POST['product_name'][$i];
for ($j = 0; $j < $_POST['qty'][$i]; $j++) {
mysqli_query($con,"INSERT INTO inv_inventory (product_name)
VALUES ('$product')");
}
}
?>
当我进入第二页时,它显示:string(16) "12/2 Indoor Wire" 并插入了 10/2 室外电缆项目中的 1 个。我把 3 个用于户外,4 个用于室内产品。
【问题讨论】:
-
var_dump($_POST)在 for 循环之前得到什么? -
它说:array(2) { [0]=> string(18) "10/2 Outdoor Cable" [1]=> string(16) "12/2 Indoor Wire" }
-
似乎
qty[]没有发布。上面的 HTML 是您的确切代码吗?这看起来很奇怪。 -
是的,除了 html,head 标签。我将 var_dump for qty 放在另一个下面,它说:array(2) { [0]=> string(18) "10/2 Outdoor Cable" [1]=> string(16) "12/2 Indoor Wire " } 数组(2) { [0]=> 字符串(1) "3" [1]=> 字符串(1) "2" }
-
哦,好的。我以为您实际上已根据我的建议添加了
var_dump($_POST)- 而不是某些特定的发布值。好的。现在会发生什么?它是否只插入一种产品?
标签: php mysql database sql-insert inventory