:::

9-1 完成點閱數功能

  1. 按照慣例問AI
    請用PHP8產生名為 add_views($id)的函數,用來增加觀看數
    可以根據id更新school_news資料表(MyISAM 引擎)的某一筆views資料,將其值+1
    PDO物件已建立,global引入使用即可
    SQL用 ? 佔位符的方式處理

     

  2. 根據AI回覆,我們將 add_views() 放至 index.php 的最後面
    function add_views(int $id): bool
    {
        global $pdo;
    
        try {
            // 準備 SQL 語句
            $sql = "UPDATE school_news SET views = views + 1 WHERE id = ?";
    
            // 準備並執行語句
            $stmt = $pdo->prepare($sql);
            $result = $stmt->execute([$id]);
    
            // 檢查是否成功更新
            if ($result && $stmt->rowCount() > 0) {
                return true;
            } else {
                // 如果沒有更新任何行,可能是因為 ID 不存在
                error_log("No rows updated for ID: $id");
                return false;
            }
        } catch (PDOException $e) {
            // 記錄錯誤並返回 false
            error_log("Error in add_views function: " . $e->getMessage());
            return false;
        }
    }
    

     

  3. 然後調整一下流程,在讀出文章前,就先將點閱數+1
    switch ($op) {
        ...略...
    
        default:
            if (!empty($id)) {
                add_views($id);
                $smarty->assign('news', show($id));
                $op = "show";
            } else {
                ...略...
                $op = "main";
            }
            $smarty->assign('aside_news', all(0, 15));
            break;
    }

     

  4. 看看是否有作用:

:::

書籍目錄

展開 | 闔起

https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D2039%26tbsn%3D55

計數器

今天: 1050105010501050
昨天: 2027202720272027
總計: 7972091797209179720917972091797209179720917972091