:::

7-9 加入刪除文章功能

  1. 刪除的SQL語法如下:
    DELETE FROM `資料表名稱` [WHERE 篩選條件] [LIMIT 筆數]

     

  2. 先確定刪除的按鈕連結無誤
    <a href="admin.php?op=destroy&id={$news.id}" class="btn btn-outline-danger">
        刪除
    </a>

     

  3. 編輯 admin.php,流程加入destroy
    switch ($op) {
        ...略...
    
        // 刪除文章
        case 'destroy':
            destroy($id);
            header("location: index.php");
            exit;
    
        // 建立
        default:
            ...略...
    }
    

     

  4. 刪除資料前,須先將相關檔案刪除。刪除目錄可以用 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);
        }
    }

     

  5. 接著,就可以完成 destroy() 函式,只要刪掉圖檔目錄,刪掉資料庫就完工了:

    // 刪除文章
    function destroy($id)
    {
        global $pdo;
        // 刪除整個目錄
        delTree("uploads/$id");
        // 刪除資料庫資料
        $stmt = $pdo->prepare("DELETE FROM `news` WHERE `id` = ?");
        $stmt->execute([$id]);
    }

     

  6. 接著就可以把重複或測試的文章刪一刪囉!
     


:::

書籍目錄

展開 | 闔起

https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D52%26tbdsn%3D1835

計數器

今天: 3283328332833283
昨天: 4096409640964096
總計: 7456811745681174568117456811745681174568117456811