输入文件有两个条件

时间:2016-01-12 07:38:18

标签: php mysql

我有5个输入字段,在上传图像后,我将获取所有值并将名称存储在一列中(使用implode)。当我想编辑表单时,如果我只编辑一个输入,则在列中保留其他输入。怎么做??

for($i=0;$i<5;$i++){
$tmp_name = $_FILES["photo"]["tmp_name"][$i];
if($tmp_name != null){
  $img = 'g'.$random.$_FILES["photo"]["name"][$i]; // image name thats going to save in db and folder.
move_uploaded_file($tmp_name,$folder.$img);
$images_name =$images_name."~~".$img;   
    $imageup=mysql_query("update pg_details set gallery='$images_name' where id='$id'");
}
}

以上代码适用于上传输入,当我想要更新时,我希望其他名称保持不变。

1 个答案:

答案 0 :(得分:2)

如果您只是更新图像,那么它就会像这样完成。此外,您正在发送SQL查询以在每个循环中更新数据库。在循环结束时执行此操作。

//fetch the existing images first
$imagedown = mysql_fetch_assoc(mysql_query("SELECT gallery FROM pg_details WHERE `id`='".$id."'"));
$images = explode("~~", $imagedown['gallery']);

for($i=0;$i<5;$i++){
    $tmp_name = $_FILES["photo"]["tmp_name"][$i];
    if($tmp_name != null){
      $img = 'g'.$random.$_FILES["photo"]["name"][$i]; // image name thats going to save in db and folder.
    move_uploaded_file($tmp_name,$folder.$img);
    //replace the respective index with the image it's to be replaced with

    if(isset($images[$i])){
        $images[$i] = $img;
    }else{
       array_push($images, $img);
    }
}
    $images_name = implode("~~", $images);
    //$images_name =$images_name."~~".$img;   
    $imageup=mysql_query("update pg_details set gallery='$images_name' where id='$id'");