如何在数据库中更新同名多个数据?

时间:2015-02-05 10:08:35

标签: php

    <form action="" method="post">
        <fieldset>
            <input type="text" name="link_name[]" value="xyz" />
            <input type="text" name="link_name[]" value="abc" />
            <input type="text" name="link_name[]" value="qwe" />
            <input type="text" name="link_name[]" value="asd" />
            <input type="submit" name="submit" value="submit"/>            
        </fieldset>    
    </form>

我想更新数据库中的任何单个数据..例如..如果我必须像xxx那样更新第一个文本字段值..那么如何使用post方法更新它..我想更新不插入所以请帮我..给一些演示或提示......

如果我使用

if(isset($_post['submit']))
{
  $link_name=$_POST['link_name'];
  mysql_query("update tbl set link_name='$link_name' where id='$id'");
}

然后它改变我所有的同名记录..我无法改变任何特定的数据..所以请给出一些建议。

我想更新数据库中的任何单个数据..例如..如果我必须像xxx那样更新第一个文本字段值..那么如何使用post方法更新它..我想更新不插入所以请帮我..给一些演示或提示......

2 个答案:

答案 0 :(得分:0)

更新单个记录在保存id的表单中放置一个隐藏字段,如果要更新的帖子然后尝试这个

// update only first field
        if(isset($_post['submit']))
        {
    //var_dump($_POST['link_name']);
          $link_name=$_POST['link_name'][0];
          mysql_query("update tbl set link_name='$link_name' where id='$id'");
        }

// update all field
foreach($_POST['link_name'] as $link_name)
{
 mysql_query("update tbl set link_name='$link_name' where id='$id'");
}

答案 1 :(得分:0)

您需要指定每个输入的ID。您可以使用不同的方法。例如,您可以为具有此行ID的每个文本输入设置隐藏输入

<input type="text" name="link_name[]" value="xyz" />
<input type="hidden" name="ids[]" value="340" />

在服务器中,您需要在link_name数组上执行循环,并为每个元素恢复id:

for($i=0;$i<count($link_name);$i++)
{
  $id = $_POST['ids'][$i];
   mysql_query("update tbl set link_name='$link_name' where id='$id'");
}