一次更新多行


Update multiple rows at once

我有这样的代码,它允许我将数据库中的所有数据显示为文本区域,我需要通过单击更新按钮来更新它们!

基于这个,应该让我编辑它们,但当我点击提交时,它不会。。。

<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
    while($rows=mysql_fetch_array($result)){
?>
<tr>
    <td align="center">
        <? $id[]=$rows['id']; ?>
        <? echo $rows['id']; ?>
    </td>
    <td align="center">
        <input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>">
    </td>
    <td align="center">
        <input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>">
    </td>
    <td align="center">
        <input name="email[]" type="text" id="email" value="<? echo $rows['email']; ?>">
    </td>
</tr>
<?php
    }
?>
<tr>
    <td colspan="4" align="center">
        <input type="submit" name="Submit" value="Submit"/>
    </td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit)
{
    for($i=0;$i<$count;$i++)
    {
        $sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
        $result1=mysql_query($sql1);
    }
}
if($result1)
{
    header("location:update_multiple.php");
}

是的,因为您忘记了id的

<? $id[]=$rows['id']; ?>不能像那样通过

<input type="hidden" name="id[]" value ="<?php echo $rows['id']; ?>" /><? echo $rows['id']; ?>

脚本CCD_ 2应为CCD_ 3

您在文章中没有定义$Submit,因此{ ... }中的内容永远不会执行。

你应该尝试这样的更新:

if(isset($_POST[$name]))
{
// update stuff
}

在您的代码中,由于if语句从不执行,因此从未设置$result,因此用户不会被重定向走——每次只会显示相同的页面。

要检查点击按钮时是否发生帖子,应设置如下:

<form>标签中添加以下

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 

最后,在哪里检查按钮是否被点击:

if(isset($_POST['Submit'])) { 
//Update fields
}

请记住,php 中的提交按钮名称字段区分大小写