我正在尝试将输入到表单中的数据,并使用帖子在同一页面上处理它,这将获取所有数据并将其插入到db中的表中。这是一个存在于.asp页面上的表单,我试图将其转换为php。该表单用于从商店输入缺货数量。
每一行都是这样的:
Number | Department | Insp Type | Qty | Memo
______________________________________________________________
1 | Bakery And Deli (OOS) | OOS | 1 | george
2 | Produce | OOS | 6 | apples
依旧......
~24个部门有行。如果将新行添加到数据库中,则表单会动态更新并显示新行。唯一的用户输入数据是数量和备忘录。其他的是由表单前面的SQL查询预填充。使用当前的代码,当我回显我的$ sqli(插入查询)时,这就是我得到的:
如果输入到表单上的数量字段中的“项目”,我还想返回一个计数。
非常感谢任何帮助。在过去的几天里,我一直试图弄清楚如何做到这一点。我一直在谷歌左右搜索,试图解决这个问题,但我完全难以理解。提前感谢您的帮助。
答案 0 :(得分:3)
那是因为你在foreach循环中创建了SQL语句。
我还建议使用输入数组(如$_POST['txtStoreID'][0]
等等......)来简化操作。
在您的情况下,我假设您的$_POST
- 数组中的字段的名称如下:txtStoreID_1
。
// First, create array for all results
$res_arr = array();
// Load array with all results
foreach ($_POST as $key=>$value) {
$tmp_name = explode('_',$key,2);
$pri_key = $tmp_name[1]; // number
$sec_key = $tmp_name[0]; // name
if (!is_array($res_arr[$pri_key])) {
$res_arr[$pri_key] = array();
}
// This creates for example: $res_arr['1']['txtStoreID'] containing 'Store_31'
$res_arr[$pri_key][$sec_key] = $value;
}
// Next, create insert statements
foreach ($res_arr as $data) { // Now you get $data['txtStoreID'] etc.
$sqli = "INSERT INTO Inspection_tbl (Store_ID, Dept_ID, Quantity, Memo, User_ID, Date_Time) ";
$sqli .= "Values ('".$data['txtStoreID']."', ";
$sqli .= "'".$data['txtDeptID']."', ";
$sqli .= "'".$data['txtQuantity']."', ";
$sqli .= "'".$data['txtMemo']."', ";
$sqli .= "'".$data['txtUserID']."', ";
$sqli .= "'now()')";
echo $sqli; // Check query
}
请注意,这只是关于输入字段的计算猜测。
修改强>
除了我所做的is_array()
更改之外,我的猜测是您需要DeptID,而不是部门的文本值。
因此,代码的底部应该是:
// Next, create insert statements
foreach ($res_arr as $deptID=>$data) { // Now you get $data['txtStoreID'] etc.
$sqli = "INSERT INTO Inspection_tbl (Store_ID, Dept_ID, Quantity, Memo, User_ID, Date_Time) ";
$sqli .= "Values ('".$data['txtStoreID']."', ";
$sqli .= "'".$deptID."', ";
$sqli .= "'".$data['txtQuantity']."', ";
$sqli .= "'".$data['txtMemo']."', ";
$sqli .= "'".$data['txtUserID']."', ";
$sqli .= "'now()')";
echo $sqli; // Check query
}