使用动态创建的数据库输入字段更新mysql中的表

时间:2013-11-11 08:37:15

标签: php mysql

我想更新数据库中的字段。这里是我从数据库中获取记录并以表格形式显示的代码。

<form name="create_album" method="POST" action="" style="width:auto;">

<label for="First Name">Album Name</label>

<input type="text" name="album" id="album" placeholder="Album Name"value="<?php echo $album_name; ?>" />


<?php 
$result = mysql_query("select * from user_uploads where album = '$album_name' ");
while($row=mysql_fetch_array($result))
{
?>
<img src="<?php echo $row['image_name']; ?>" height="140" width="140" /> 
<input type="text" name="des[]" value="<?php echo $row['image_description']; ?>" placeholder="Image Description Here"/>
<input type="text" name="id[]" value="<?php echo $row['id']; ?>" placeholder="Image Description Here"/>

<?php } ?>
<input type="submit" name="submit" value="Upload Album"/>

但现在当我想更新数据库中的记录时,它会将所有记录更新到表中,并使用最后一个输入字段的值。这是php代码。

  <?php 
if(IsSet($_POST["submit"]))
{
     $album = $_POST["album"];
             $des=$_POST["des"];
    foreach($_POST['id'] as $id)
    {

$update_qry = "update user_uploads set album='$album', image_description='$des' where id = '$id' ";

     $result_update_image = mysql_query($update_qry);
  if (!$result_update_image) 
  {
            header("location:create_album.php?errmsg=Album Not Updated");
        }



        }

    }
    }
 ?>

但我不知道如何根据id将des form数组的所有值更新到表中。

2 个答案:

答案 0 :(得分:2)

更改此类代码并检查。

   $i=0;
    $des=$_POST["des"];
    foreach($_POST['id'] as $id)
        {

          $update_qry = "update user_uploads set album='".$album."', image_description='".$des[$i]."' where id = '".$id."' ";

         $result_update_image = mysql_query($update_qry);
    $i++;
    }

答案 1 :(得分:1)

试试这个

<input type="text" name="des[]" value="<?php echo $row['image_description']; ?>" placeholder="Image Description Here"/>

我改了名字。