Php 将多个关联数组数据插入MySQL数据库
我有下面的表单,它传递了一个名、姓和年龄的数组Php 将多个关联数组数据插入MySQL数据库,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有下面的表单,它传递了一个名、姓和年龄的数组 <form method="post" action="form.php"> <label for="first_name">First Name:</label> <input type="text" name="first_name[]" id="first_name" /> <br /> <label for="last_name">Las
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
如何将上述数组转换为以下结构,以便创建一个循环,一次向MySQL db/表中添加一条记录(名字、姓氏、年龄)
e、 g.名[0]、姓[0]和年龄[0]是一条记录
为了循环数据插入,我需要数组看起来与下面类似
Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
[1] => Array
(
[first_name] => Lisa
[last_name] => Newman
[age] => 44
)
[2] => Array
(
[first_name] => Owen
[last_name] => McDowell
[age] => 36
)
[save] => Save
)
$count=count($array\u in);
$array_out=array();
对于($i=0;$i<$count;$i++)
{
$array_out[]=数组
(
'first_name'=>['first_name'][$i]中的$array_,
'last_name'=>['last_name'][$i]中的$array_,
'age'=>['age'][$i]中的$array_
);
}
打印($array\u out);
就个人而言,我认为您应该更改表单(如果可能的话),以便它输出您实际需要的数组
目前你正在输出你不想要的东西,只是想把它改成你想要的东西,而你可以在第一时间输出你想要的东西。这意味着代码更少,因此更整洁、更快、更易于维护,等等
您可以将HTML表单更改为此..我刚刚更改了每个输入的
name=”“
,因此每个表单都添加到同一个数组中,但每个表单(即第一个、最后一个、年龄)都有自己的子数组:
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="array[0][first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[0][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[0][age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="array[1][first_name1]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[1][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[1][age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="array[2][first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[2][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[2][age]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
在插入数据库时,您可以轻松地循环这些内容
要完全按照您的要求执行:
Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
//etc
必须将数组名称设置为数字,以便根据需要将每个子数组的索引设置为数字,例如:
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="0[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="0[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="0[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="1[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="1[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="1[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="2[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="2[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="2[age]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
名字:
姓氏:
年龄:
名字:
姓氏:
年龄:
名字:
姓氏:
年龄:
我认为这不是个好主意。你为什么不认为这是个好主意?你会怎么做我很想知道有哪些不同的方法,哪些方法最好?我会按照我的第一个表单代码来做。它根据我引用的内容设置数组和子数组。通过这种方式,可以根据需要创建阵列结构,因此以后无需更改阵列。
Array
(
[array] => Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
[1] => Array
(
[first_name] => Lisa
[last_name] => Newman
[age] => 44
)
[2] => Array
(
[first_name] => Owen
[last_name] => McDowell
[age] => 36
)
[save] => Save
)
)
Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
//etc
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="0[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="0[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="0[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="1[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="1[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="1[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="2[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="2[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="2[age]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>