:::
9-1 完成點閱數功能
- 按照慣例問AI
請用PHP8產生名為 add_views($id)的函數,用來增加觀看數 可以根據id更新school_news資料表(MyISAM 引擎)的某一筆views資料,將其值+1 PDO物件已建立,global引入使用即可 SQL用 ? 佔位符的方式處理 - 根據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; } } - 然後調整一下流程,在讀出文章前,就先將點閱數+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; } - 看看是否有作用:

9. 完成各種小細節