将数组值和单个表单值插入到PHP MYSQL的所有行中

时间:2013-01-12 03:52:40

标签: php mysql

有人可以告诉如何将此插件写入数据库吗?下面的代码是我想要完成的一个例子。我想为有多个孩子的家庭准备一份表格。他们提交他们的姓氏和一个他们将在数据库中共享的ID。请参阅下面的代码......

表格输入

<input type="text" name="fname[]"/>
<input type="text" name="lname[]"/>
<input type="text" name="fname[]"/>
<input type="text" name="lname[]"/>
<input type="text" name="family_id"/>

这是我遇到麻烦的地方。我可以提交姓氏,但只有第一个(行)“名称”也存储“family_id”。

PHP

        foreach($_POST['fname'] as $key => $fname) {
            $lname = $_POST['lname'][$key];
                            $family_id = $_POST['family_id'][$key];

            $query = mysql_query("INSERT INTO Table (FName, LName, Family_ID ) VALUES ('{$fname}', '{$lname}', $_POST['family_id'])"); 
        } 

我感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

{}周围缺少$_POST['family_id'] family_id没有阵列。

所以你得到的第一次迭代

$_POST['family_id'][0]; // gets the id

第二个

$_POST['family_id'][1]; // gets undefined index

要解决此问题,请执行以下操作。

foreach循环和concat $family_id之前将以下代码添加到查询中,就像您对其他代码一样。

$family_id = $_POST['family_id'];

答案 1 :(得分:0)

试试这个:

extract($_POST);
$total=count($fname);

for($i=0;$i<count($total);$i++)
{

$fname=$fname[$i];
$lname=lfname[$i];

 $query="INSERT INTO Table (FName, LName, Family_ID ) VALUES ('{$fname}', '{$lname}', $family_id)";

}