前台代碼
後台
$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的內容
回複討論(解決方案)
表單上傳後,$_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]."'";
有下標的資料資料引用,最好用.來串連。
我暈 。。。我現在瀏覽圖片可以更新 我想不瀏覽圖片 不要覆蓋啊tupiandetail 這個欄位的內容
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]'";
....
}
$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]'";
$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPDATE detail SET dafenleidetail = '$_POST[detai……
難道你不知道 Null 字元串 也會覆蓋啊
if($_FILES["file"]["error"] == 0) {
//只對成功桑穿的圖片進行處理
$iii= 'images/'.$_FILES["file"]["name"];
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',……
那不成功呢?
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPDATE detail SE……
覆蓋什嗎?你把SQL語句列印出來不就知道我寫的對不對了。
引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPD……
如果沒瀏覽圖片 $str = "";
那個$str update欄位內容 內容會變成空 原來的內容沒有了
引用 7 樓 jzh2004 的回複:引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii……
你列印出來不就知道了,欄位沒改變怎麼會變空,實踐出真理啊
引用 8 樓 gg86965921gg 的回複:
引用 7 樓 jzh2004 的回複:引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images/'.$_FILES["file"]["name"];
$st……
你的邏輯不是 當沒有瀏覽圖片 $str=""; 麼 你update 不是覆蓋了。。
那不成功呢?
不正式你需要的嗎?
上傳不成功就不修改?
引用 9 樓 jzh2004 的回複:引用 8 樓 gg86965921gg 的回複:
引用 7 樓 jzh2004 的回複:引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
$iii= 'images……
如果不明白我的邏輯,就聽我的列印出SQL語句看看結果,然後在想想哪裡搞錯了。
引用 10 樓 gg86965921gg 的回複:
引用 9 樓 jzh2004 的回複:引用 8 樓 gg86965921gg 的回複:
引用 7 樓 jzh2004 的回複:引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0)
{
//檔案儲存檔案等操作
……
$str = "";
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
我運行了啊 就是把原來的欄位內容覆蓋了啊
引用 12 樓 jzh2004 的回複:引用 10 樓 gg86965921gg 的回複:
引用 9 樓 jzh2004 的回複:引用 8 樓 gg86965921gg 的回複:
引用 7 樓 jzh2004 的回複:引用 5 樓 gg86965921gg 的回複:
引用 4 樓 jzh2004 的回複:$str = "";
if($_FILES["file"]['error'] == 0……
你這個SQL語句雷根本沒有tupiandetail這個欄位,怎麼會把原來內容覆蓋
有啊 我不用這個方法了。。。
$str = "";
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
我運行了啊 就是把原來的欄位內容覆蓋了啊
有啊 我不用這個方法了。。。
--------------------
你不是說你運行了嗎,上面的SQL語句裡哪裡有tupiandetail欄位?你還能說有?
那你的代碼 圖片上傳成功不會覆蓋了。。
那你的代碼 圖片上傳成功不會覆蓋了。。
所以說你根本沒有運行過啊,圖片上傳成功,就執行if裡面的語句,$str變數裡就有值了,也就會改變了