如何使用输入从数组值插入多行

时间:2014-03-11 15:11:07

标签: javascript php html mysql

我的表名为i_table,其中包含列:

id   name    req_qty  req_date     rcv_qty   rec_date
1    metal   1        2014-03-04
2    spring  5        2014-03-04

在我的html / php中:

<form action="insert.php" method="post">
<?php $resource2=mysql_query("SELECT * FROM i_table",$con);
    while($result2=mysql_fetch_array($resource2))
        { 
?>
<table>
<tr>
<td>
<input type="text" name="id" value="<?php echo $result2['id'];?>"/>
</td>
</tr>

<tr>
<td>
<input type="text" name="name" value="<?php echo $result2['name'];?>"/>
</td>
</tr>

<tr>
<td>
<input type="text" name="rcv[]" value="" />
</td>
</tr>

<tr>
<td>
<input type="date" name="rcv_date[]" value="" />
</td>
</tr>

</table>


<?php };?>

</form>

如何根据db中的唯一ID从输入中插入多个数组?请帮助我...... huhu

1 个答案:

答案 0 :(得分:1)

在表单中,添加id作为键 -

<form action="insert.php" method="post">
<?php $resource2=mysql_query("SELECT * FROM i_table",$con);
    while($result2=mysql_fetch_array($resource2))
        { 
?>
<table>
<tr>
<td>
<input type="text" name="id[<?php echo $result2['id'];?>]" value="<?php echo $result2['id'];?>"/>
</td>
</tr>

<tr>
<td>
<input type="text" name="name[<?php echo $result2['id'];?>]" value="<?php echo $result2['name'];?>"/>
</td>
</tr>

<tr>
<td>
<input type="text" name="rcv[<?php echo $result2['id'];?>]" value="" />
</td>
</tr>

<tr>
<td>
<input type="date" name="rcv_date[<?php echo $result2['id'];?>]" value="" />
</td>
</tr>

</table>

<?php };?>

</form>

然后在您发布表单的insert.php上,获取您的foreach中的id -

<?php
 if(isset($_POST['id'])){
    foreach($_POST['id'] as $id=>$value){

    $sql = "UPDATE `i_table` SET `name` = '".$_POST['name'][$id]."', `rcv_qty` = '".$_POST['rcv'][$id]."', `rec_date` = '".$_POST['name'][$id]."' WHERE `id` = ".$id."";

    mysql_query($sql,$con);
    }
 }
?>

请注意foreach()只是一个例子。在插入/更新之前,您需要清理数据以防止sql注入。见How can I prevent SQL injection in PHP?