如何在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”