0

我在这里修复。我的代码不会使用一种形式将多个数据插入到 mysql 表中。这是我的代码-

<?php
if (isset($_POST['submitted'])) {
  include('config.php');
  foreach($_POST['name'] as $row=>$nam) {
    $name=$nam;
    $class=$_POST['class'][$row];
    echo "<br/>" . $name . "<br/>" . $class;
    $sql="INSERT INTO multiple (name, class) VALUES ('$name','$class')";
  }
  if (!mysql_query($sql)) die('Error: ' . mysql_error());
  echo "1 record added";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Name1:
<input id="name" name="name[]" type="text">
<input type="hidden" name="submitted" value="true" />
</label>
<label> Class1:
<input id="class" name="class[]" type="text">
</label>
<label>Name2:
<input id="name" name="name[]" type="text">
</label>
<label>Class2:
<input id="class" name="class[]" type="text">
</label>
<label>Name3:
<input id="name" name="name[]" type="text">
</label>
<label>Class3:
<input id="class" name="class[]" type="text">
</label>
<label>Name4:
<input id="name" name="name[]" type="text">
</label>
<label>Class4:
<input id="class" name="class[]" type="text">
</label>
<label>Name5:
<input id="name" name="name[]" type="text">
</label>
<label>Class5:
<input id="class" name="class[]" type="text">
</label>
<input value="Add" type="submit">

</form>

当我按下提交按钮时,mysql 表中没有插入任何内容。仅创建空字段。如果我插入 5 个文本字段,我会在 sql 表中得到 5 个空字段。

4

3 回答 3

1

我认为您的插入查询有问题.....尝试这样

$query = mysql_query("INSERT INTO category VALUES('','$name','$class','')") or die(mysql_error()); 
于 2012-11-08T06:09:38.803 回答
1

Imroz,您在发布表单时将其[]用作输入元素(而不是 id)名称的一部分,name="class[]"它会构建一个数组。PHP 可以识别的 post 对象是$_POST['class']

但是作为一个数组意味着你必须在将它插入数据库之前处理它略有不同,因为你不能只是(也许你可以)将一个数组放入数据库

如果你这样做了

for($x=0;$x < count($_POST['class']); $x++)
{
    echo $_POST['class'][$x].'<br>';
}

您将能够从带有名称的输入中看到您发布的所有输入class[]

当然,这是您整体需要做的一个核心示例,但我只是想表达您发布的数据的情况。

于 2012-08-14T21:27:33.950 回答
0

你有}错误的地方。

}$sql=应移到后echo "1 record added";

我重新格式化您的代码以使用正确的缩进并且错误很明显。

于 2012-08-14T21:52:46.537 回答