前台代码<form action="indexluoji.php" method="post" enctype="multipart/form-data"><div>输入图片(大小333px*156px)</div><input type="file" id="file" name="file"><div>输入小分类</div>
<textarea class="duohang" rows="3" cols="20" name="tupianwenzi2">
222</textarea>
<div>输入描述</div>
<textarea class="duohang" rows="3" cols="20" name="tupianwenzi3">222</textarea>
<input type="hidden" name="hidid" value="1" />
<div><button type="submit" >保存</button></div>
</form>后台
 $iii= 'images/'.$_FILES["file"]["name"];$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]',tupiandetail = '$iii',miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";我现在想 不浏览图片 update不会覆盖原来tupiandetail的内容

解决方案 »

  1.   

    表单上传后,$_FILES["file"]["name"]是上传前的文件名,而实际上这个文件被放入了临时目录,你需要copy或者move到指定位置,甚至根据需要重命名。$sql="UPDATE detail SET dafenleidetail = '".$_POST[detail1]."',xiaofenleidetail = '".$_POST[detail2]."',btdetail = '".$_POST[detail3]."',tupiandetail = '$iii',miaoshudetail = '".$_POST[detail5]."' WHERE id='".$_POST[hidid]."'";
    有下标的数据数据引用,最好用.来连接。
      

  2.   

    我晕 我现在浏览图片可以更新 我想不浏览图片 不要覆盖啊tupiandetail  这个字段的内容
      

  3.   

    if($_FILES["file"]["error"] == 0) {
      //只对成功桑穿的图片进行处理
      $iii= 'images/'.$_FILES["file"]["name"];  $sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]',tupiandetail = '$iii',miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
    ....
    }
      

  4.   

    $str = "";
    if($_FILES["file"]['error'] == 0)
    {
    //文件保存文件等操作

    $iii= 'images/'.$_FILES["file"]["name"];
    $str = ",tupiandetail = '$iii'";
    }$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
      

  5.   

    覆盖什么?你把SQL语句打印出来不就知道我写的对不对了。
      

  6.   

    如果没浏览图片 $str = "";那个$str update字段内容  内容会变成空 原来的内容没有了
      

  7.   

    你的逻辑不是 当没有浏览图片 $str=""; 么  你update 不是覆盖了。。
      

  8.   


    如果不明白我的逻辑,就听我的打印出SQL语句看看结果,然后在想想哪里搞错了。
      

  9.   


    $str = "";
    $sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
    我运行了啊  就是把原来的字段内容覆盖了啊 
      

  10.   

    你这个SQL语句里根本没有tupiandetail这个字段,怎么会把原来内容覆盖
      

  11.   

    $str = "";
    $sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
    我运行了啊  就是把原来的字段内容覆盖了啊 
    有啊 我不用这个方法了
    --------------------
    你不是说你运行了吗,上面的SQL语句里哪里有tupiandetail字段?你还能说有?
      

  12.   

    所以说你根本没有运行过啊,图片上传成功,就执行if里面的语句,$str变量里就有值了,也就会改变了