使用PHP在Mysql表中插入多行

时间:2012-08-14 21:00:02

标签: php mysql record

我在修这里。我的代码不会使用一个表单将多个数据插入到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个空字段。

3 个答案:

答案 0 :(得分:1)

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

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

如果你做了

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

您可以通过名为class[]

的输入查看所有发布的输入内容

当然,这是您需要做的总体核心示例,但我只想表达您发布的数据的最新动态。

答案 1 :(得分:1)

我认为你的插入查询有问题.....试试这个

$query = mysql_query("INSERT INTO category VALUES('','$name','$class','')") or die(mysql_error()); 

答案 2 :(得分:0)

您的}位置错误。

}之后的$sql=应该在echo "1 record added";之后移动

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