我的表单中有[添加字段]选项,可以添加几乎无限的项目编号和说明。
这些字段的名称为:item[]
和desc[]
(数组括号)。
我的问题是,如何使用PHP和MySQL提交此信息,以便每行(项目和描述)都作为数据库中自己的行提交?
我尝试了多种方法,例如提交项目[0]和desc [0],但没有用:(
提前感谢您的所有帮助!
编辑:以下是我一直在尝试使用的...(对不起,对于数组来说不是很好......)
$count = 0
foreach ($_POST['item'] as $item) {
$query = "INSERT INTO items (item, desc) VALUES ('" . $item[$count] . "', '" . $_POST['desc'][$count] . "')";
// Script simplified as it is quite complex.
if ($query_result) {
$count++;
}
}
答案 0 :(得分:3)
您可以使用foreach循环遍历任何一个输入字段,然后访问其他字段。
foreach($_POST['item'] as $key => $item){
//your code
$desc = $_POST['desc'][$key];
}
编辑:根据您的代码脚本将类似
$count = 0
foreach ($_POST['item'] as $key => $item) {
$query = "INSERT INTO items (item, desc) VALUES ('" . $item . "', '" . $_POST['desc'][$key] . "')";
// Script simplified as it is quite complex.
if ($query_result) {
$count++;
}
}
答案 1 :(得分:2)
为了进一步帮助您,我建议如下。
为您的字段命名如下:
line[1][item]
line[1][desc]
line[2][item]
line[2][desc]
etc...
然后在PHP中,数据在查看时会更有“意义”:
<?php
$count = 0;
foreach ($_POST['line'] as $line => $vals) {
$item = $vals['item']; /* do some kind of input validation here */
$desc = $vals['desc']; /* do some kind of input validation here */
/* if no errors, continue */
$sql = "INSERT INTO `items` (`item`,`desc`) VALUES ('$item', '$desc')";
if (mysql_query ($sql)) {
$count++;
}
}
?>
我发现这种方法更灵活。只是我的两分钱。
路