如何在php mysql中插入同名字段的批量数据
我试图插入包含多行的同名批量数据字段。但只插入一行。 如何将批量数据作为不同的值插入数据库如何在php mysql中插入同名字段的批量数据,php,html,Php,Html,我试图插入包含多行的同名批量数据字段。但只插入一行。 如何将批量数据作为不同的值插入数据库 将值(“$username”、“$luck\u number”、“$test”、“$tester”)插入表名称(用户名、幸运号、测试、测试仪)中。 1. **注:**您可以担心安全问题信函。请阅读带有注释的答案。 通过在输入字段中添加[]将它们存储在数组中 <tr> <td>1</td> <form action="" method="POST"> &l
将值(“$username”、“$luck\u number”、“$test”、“$tester”)插入表名称(用户名、幸运号、测试、测试仪)中。
1.
**注:**您可以担心安全问题信函。请阅读带有注释的答案。
通过在输入字段中添加[]
将它们存储在数组中
<tr>
<td>1</td>
<form action="" method="POST">
<input type="hidden" name="username" value="<?php echo $login_session; ?>"/>
<td><input type="text" name="luck_number[]" value=""/></td>
<td><input type="text" name="big[]" value=""/></td>
<td><input type="text" name="test[]" value=""/></td>
<td><input type="text" name="tester[]" value=""/></td>
</tr>
<tr>
<td>2</td>
<input type="hidden" name="username" value="<?php echo $login_session; ?>"/>
<td><input type="text" name="luck_number[]" value=""/></td>
<td><input type="text" name="big[]" value=""/></td>
<td><input type="text" name="test[]" value=""/></td>
<td><input type="text" name="tester[]" value=""/></td>
</tr>
<tr>
<td>3</td>
<input type="hidden" name="username" value="<?php echo $login_session; ?>"/>
<td><input type="text" name="luck_number[]" value=""/></td>
<td><input type="text" name="big[]" value=""/></td>
<td><input type="text" name="test[]" value=""/></td>
<td><input type="text" name="tester[]" value=""/></td>
</tr>
<tr></td><input type="submit" name="submit" value="submit"/><tr></td>
</form>
<?php
//connect with your database
for($i=0;$i<count($_POST['luck_number']);$i++)
{
//set the value for variable
$luck_number=$_POST['luck_number'][$i];
$test=$_POST['test'][$i];
$tester=$_POST['tester'][$i];
//run your query
//INSERT INTO table_name (username, luck_number, test, tester) VALUES (('$username', '$luck_number', '$test', '$tester').
}
1.
@nisha,在您的场景中,只插入一行,因为变量的名称相同,所以它被覆盖。请尝试下面的代码,它将为您提供字段数组,以便您可以轻松地创建for循环并使用查询执行多个插入
<form method="post" name="userdata">
<tr>
<td>1</td>
<input type="hidden" name="username[]" value="<?php echo $login_session; ?>" />
<td>
<input type="text" name="luck_number[]" value="" />
</td>
<td>
<input type="text" name="big[]" value="" />
</td>
<td>
<input type="text" name="test[]" value="" />
</td>
<td>
<input type="text" name="tester[]" value="" />
</td>
</tr>
<tr>
<td>2</td>
<input type="hidden" name="username[]" value="<?php echo $login_session; ?>" />
<td>
<input type="text" name="luck_number[]" value="" />
</td>
<td>
<input type="text" name="big[]" value="" />
</td>
<td>
<input type="text" name="test[]" value="" />
</td>
<td>
<input type="text" name="tester[]" value="" />
</td>
</tr>
<tr>
<td>3</td>
<input type="hidden" name="username[]" value="<?php echo $login_session; ?>" />
<td>
<input type="text" name="luck_number[]" value="" />
</td>
<td>
<input type="text" name="big[]" value="" />
</td>
<td>
<input type="text" name="test[]" value="" />
</td>
<td>
<input type="text" name="tester[]" value="" />
</td>
</tr>
<input type="submit" name="submit">
</form>
1.
首先,通过在末尾添加[]
来更改所有字段名。
第二步,要解析所有值,您可以使用类似的方法
for($i=0; $i < $count($_GET['username']); $i++)
{
$username = $_GET['username'][$i];
$luck_number= $_GET['luck_number'][$i];
$big= $_GET['big'][$i];
$test= $_GET['test'][$i];
$tester= $_GET['tester'][$i];
// insert into database
}
for($i=0;$i<$count($\u GET['username']);$i++)
{
$username=$\u获取['username'][$i];
$luck\u number=$\u获得['luck\u number'][$i];
$big=$\你得到['big'][$i];
$test=$\u获取['test'][$i];
$tester=$\u获取['tester'][$i];
//插入数据库
}
插入单行而不是多行的原因是您的输入字段名。您在不同的输入字段中使用相同的名称,因此当服务器收到回复时,它将替换重复的名称,并输出最后一次出现的名称
你要做的就是使用数组。如果你使用已知数量的行,那么你可以简单地使用for循环来插入数据
1.
php将使用名称字段作为$\u POST
的键,因此,由于输入字段中的名称相同,每个块都会覆盖上一组。必须为输入字段指定唯一的名称,如name=“1\u luck\u number”
和name=“2\u luck\u number”