2012-11-22 39 views
0

我正在提交表单,我正在更新state idcity namecity image提交文件输入空白的表格

当我只更新图像,它的工作原理。 当我更新state idcity name并希望我的旧图像保持不变时,照片字段在数据库中将变为空白。

我的PHP代码是这样的:

<?php 

if(isset($_POST) && $_POST['submit'] == "Update") 
{ 
     extract($_POST); 
     if($_FILES['photo']) 
     { 
     $cityimg = upload_file($_FILES['photo'],'cityimg/','image','N','true','thumb/', 100, 100); 
     $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name', photo = '$cityimg' WHERE cid = '$cid'"; 
     } 
     else 
     { 
     $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name' WHERE cid = '$cid'"; 
     } 
     $result = mysql_query($sql); 
     if($result) 
     { 
      $msg = "City Updated Successfully."; 
     } 
} 

?> 

我认为我的圈是有一些问题。

+0

你说当你的'其他{}'进行你的'photo'柱被掏空了那一排? – George

回答

1

你应该测试一个文件是否以不同的方式上传。例如,这将确保该文件上传时发生没有错误(如果有任何):

if($_FILES['photo']['error'] == UPLOAD_ERR_OK){ 
    // A file was uploaded and there is no error 
} 

如果你只是想,如果没有文件被选中测试,你可以使用UPLOAD_ERR_NO_FILE

More info on file upload error messages

这应该为你工作:

<?php 

if(isset($_POST) && $_POST['submit'] == "Update") 
{ 
     extract($_POST); 

     // If image was uploaded 
     if($_FILES['logo']['error'] == UPLOAD_ERR_OK) 
     { 
      $cityimg = upload_file($_FILES['photo'],'cityimg/','image','N','true','thumb/', 100, 100); 
      $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name', photo = '$cityimg' WHERE cid = '$cid'"; 
     } 

     // If no image was uploaded 
     else 
     { 
      $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name' WHERE cid = '$cid'"; 
     } 
     $result = mysql_query($sql); 
     if($result) 
     { 
      $msg = "City Updated Successfully."; 
     } 
} 

检查this post更多细节

+0

谢谢@rayfranco –