2013-01-23 52 views
0

有人可以幫我處理我的代碼。我可以刪除數據庫中的圖像,但在目錄中我不能。即時通訊嘗試了很長時間,但它似乎根本不工作。請有人幫助我嗎?這裏是我的代碼:這是代碼,其中的圖像通過數據庫和目錄刪除圖像

<? 
//this is were images displayed 
        $query = "SELECT * FROM images WHERE category='home'"; 
        $result = mysql_query($query) or die(mysql_error()); 
        while($row = mysql_fetch_array($result)){ 
        ?> 
        <a href="edithomephotos.php?delete=<?=$row['imageID']?>" onclick = "return confirm('Are you sure you want to delete?')"><img src="images/template/delete.png" id="AEDbutton"></a> 


        echo "<img border=\"0\" src=\"".$row['image']."\" width=\"200\" height=\"100\">"; 
        echo "<br>";    } 


?> 

,?

include('global.php'); 

//this is were image were deleted 

if($delete != "") 



    { 

     $query = "DELETE FROM images WHERE imageID='".$delete."'"; 
     ExecuteQuery($query); 

} 

//but in here , it cannot delete image through directory 
      $query = "SELECT * FROM images WHERE imageID='".$delete."'"; 

       $result = mysql_query($query); 

while ($delete = mysql_fetch_array($result)) { 
       $image = $delete['image']; 

       $file= '/.directory/'.$image; 

         unlink($file); 


    } 



?> 
+0

你應該先$替換刪除與$ _REQUEST [」刪除'] – axel

+0

你確實意識到你在刪除記錄後執行'SELECT'語句? –

+0

這正是我爲什麼使用galleryproject [http://galleryproject.org/gallery_3_begins]爲我的後端的東西 – Strawberry

回答

2

您已經刪除了表中的圖像條目,之後您嘗試獲取數據庫中的相同條目。所以,首先你可以從文件夾中刪除圖像,然後你可以在表格中刪除。

<?php 
    include('global.php'); 

    if($delete != "") { 
     $query = "SELECT * FROM images WHERE imageID='".$delete."'"; 
     $result = mysql_query($query); 

     while ($delete = mysql_fetch_array($result)) { 
      $image = $delete['image']; 
      $file= '/.directory/'.$image; 
      unlink($file); 
     } 

     $query = "DELETE FROM images WHERE imageID='".$delete."'"; 
     ExecuteQuery($query); 
    } 
?> 

注: 確保您的路徑$file= '/.directory/'.$image;是正確的,我覺得它從根目錄參考。

+0

我試過這個」$ file =「../directory/".$image .;」但似乎沒有任何工作。和錯誤是這樣的: 警告:unlink(/。目錄/目錄/ 33.jpg)[function.unlink]:沒有這樣的文件或目錄在C:\ wamp \ www \ updatedTHESIS \ updatedILAMadmin \ edithomephotos.php在27行 – user2004096

+0

確保您將其指向正確的文件夾。你可能不需要在'$ file'變量中加'/ .directory /''。 嘗試只使用'unlink($ file);'並且看看你得到了什麼。 如果你的圖像存儲在一個特定的文件夾中,讓我們說你當前的工作目錄中的'/ images /',你可以使用'unlink('images /'。 –

+0

是的!有用。非常感謝你的朋友。我非常欠你:) – user2004096

1

有趣。這是因爲您首先從數據庫中刪除圖像ID,然後嘗試獲取之前刪除的圖像(不再存在)的ID並刪除與其關聯的文件。像這樣切換代碼。

include('global.php'); 

if($delete != "") 
{ 
//first delete the file 
$query = "SELECT * FROM images WHERE imageID='".$delete."'"; 

$result = mysql_query($query); 

while ($delete = mysql_fetch_array($result)) 
{ 
    try 
    { 
     $image = $delete['image']; 
     $file= '/images/'.$image; 
     unlink($file); 
    } catch (Exception $e) { 

    } 
} 

// after that delete the id from the db of that image associated with the deleted file 
$query = "DELETE FROM images WHERE imageID='".$delete."'"; 
ExecuteQuery($query); 
} 

更新:我添加了一個嘗試捕捉

+0

我曾嘗試過,但它是錯誤的。 錯誤是警告:unlink(/。目錄/目錄/ 33.jpg)[function.unlink]:沒有這樣的文件或目錄在C:\ wamp \ www \ updatedTHESIS \ updatedILAMadmin \ edithomephotos.php 27行 – user2004096

+0

這意味着你試圖刪除的圖像33.jpg不存在,我會更新代碼 –

0

如果要刪除的圖像,首先你需要刪除的圖像,然後刪除DB

相關問題