從零開始建立 Q&A 管理功能

本文件總結了先前檔案中所學的步驟,說明如何從現有的 Member News 管理功能延伸出新的 Q&A 區塊。內容包括資料庫設計、PHP 檔案結構、 後台與前台的互動流程,以及程式設計邏輯。您可以依照此指南自力完成 Q&A 模組的製作。

一、前置準備

  1. 安裝 XAMPP:下載並安裝 XAMPP(含 Apache 與 MySQL)後啟動這兩項服務。
  2. 建立資料庫:進入 http://localhost/phpmyadmin,建立名稱為 feva 的資料庫, 編碼選擇 utf8_general_ci
  3. 匯入初始資料:將提供的 db.sql 匯入 feva,此檔案內含預設的 admin 管理者帳戶以及 member_newsfaq 等資料表結構。
  4. 部署檔案:把整個 cms 資料夾放入 XAMPP/htdocs 目錄下。 後台路徑為 http://localhost/cms/cms/,前台首頁路徑為 http://localhost/cms/index.php

二、理解 Member News 管理邏輯

Member News 模組提供新增、編輯及刪除新聞的功能。以下說明其核心邏輯,這些技巧可直接套用到 Q&A 模組上。

1. 列表頁(member_news.php)

2. 新增頁(member_news_add.php / member_news_add_submit.php)

3. 編輯頁(member_news_edit.php / member_news_edit_submit.php)

4. 刪除頁(member_news_delete.php)

三、打造全新的 Q&A 模組

以下步驟說明如何從零開始設置 Q&A 管理功能,並在前台顯示問答。

步驟 1:建立資料表

feva 資料庫中建立 faq 表格,欄位如下:

CREATE TABLE `faq` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `question` TEXT NOT NULL,
  `answer` TEXT NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

可先插入幾筆預設資料,並記得使用 urlencode() 轉換中文。

步驟 2:複製並改寫後台檔案

  1. member_news 檔案為範本,在 cms/cms 目錄建立以下檔案:
  2. 所有檔案都需 include("inc_function.php") 並呼叫 check_login()connect_db(),確保連線與權限。
  3. 將原本涉及圖片上傳、日期欄位的程式碼刪除或註解,只保留與文字相關的部分。
  4. 使用和 Member News 相同的 cookie 機制顯示新增、修改或刪除的成功/失敗訊息。

步驟 3:修改導航列

編輯 inc_header.php,在導航列加入通往 Q&A 列表的新連結:

<nav>
  <a href="index.php">Home</a>
  <a href="member_news.php">Member News</a>
  <a href="faq.php">Q&A</a>
  <a href="logout.php">Logout</a>
</nav>

步驟 4:前台載入 Q&A

  1. 開啟根目錄的 index.php,找到原本硬編碼的常見問題區塊。
  2. 引入 cms/inc_function.php 並呼叫 connect_db()
  3. 用 PHP 執行 SELECT * FROM faq,以迴圈生成每一筆問答:
  4. <?php
    include_once "cms/inc_function.php";
    connect_db();
    $sql = "SELECT * FROM faq";
    $rs = mysqli_query($connect, $sql);
    while ($row = mysqli_fetch_array($rs)) {
    ?>
      <li>
        <div class="q"><?= urldecode($row["question"]) ?></div>
        <div class="a"><?= urldecode($row["answer"]) ?></div>
      </li>
    <?php
    }
    ?>
  5. 配合現有的 jQuery 腳本(點擊問題顯示答案),即可完成動態常見問題區。

步驟 5:測試功能

  1. 透過 http://localhost/cms/cms/login.php 進入後台,以預設帳號密碼 admin/admin 登入。
  2. 進入「Q&A」頁面,新增幾筆問題與答案,確認資料能順利寫入資料庫。
  3. 測試編輯與刪除功能,觀察列表是否正確更新。
  4. 返回前台首頁,確認 Q&A 區塊出現新增的問答,點擊後能展開或收合答案。

四、注意事項

依循以上步驟,您即可成功建立一個可在後台管理的 Q&A 功能,並在前台動態顯示問答內容。