:::
7-9 加入刪除文章功能
- 刪除的SQL語法如下:
DELETE FROM `資料表名稱` [WHERE 篩選條件] [LIMIT 筆數] - 先確定刪除的按鈕連結無誤
<a href="admin.php?op=destroy&id={$news.id}" class="btn btn-outline-danger"> 刪除 </a> - 編輯
admin.php,流程加入destroyswitch ($op) { ...略... // 刪除文章 case 'destroy': destroy($id); header("location: index.php"); exit; // 建立 default: ...略... } -
刪除資料前,須先將相關檔案刪除。刪除目錄可以用 rmdir() ,但使用該函數須先刪除檔案後才能刪除目錄,所以,可以到 rmdir() 的頁面,下方就有人寫出刪除整個目錄的方法(我們自己利用 is_dir() 多做個判斷,若是目錄才執行):
// 刪除整個目錄 function delTree($dir) { if (is_dir($dir)) { $files = array_diff(scandir($dir), array('.', '..')); foreach ($files as $file) { (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); } return rmdir($dir); } } -
接著,就可以完成
destroy()函式,只要刪掉圖檔目錄,刪掉資料庫就完工了:// 刪除文章 function destroy($id) { global $pdo; // 刪除整個目錄 delTree("uploads/$id"); // 刪除資料庫資料 $stmt = $pdo->prepare("DELETE FROM `news` WHERE `id` = ?"); $stmt->execute([$id]); } -
接著就可以把重複或測試的文章刪一刪囉!
7-8 讓圖片可以刪除