1

我尝试通过 PHP 逐行提交的表单样机

我有一个带有 [添加字段] 选项的表单,可以添加几乎无限的项目编号和描述。

这些字段被命名为:item[]desc[](数组的括号)。

我的问题是,我将如何使用 PHP 和 MySQL 提交此信息,以便将每一行(项目和描述)作为数据库中自己的行提交?

我尝试了多种方法,例如提交 item[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++;
    }
}
4

2 回答 2

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++;
    }
}
于 2013-05-14T19:32:26.267 回答
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++;
  }
}
?>

我发现这种方法更灵活。只是我的两分钱。

卢克

于 2013-05-14T20:16:02.873 回答