我有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'");
}
}
以上代码适用于上传输入,当我想要更新时,我希望其他名称保持不变。
答案 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'");