首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 新聞系統設計思路與實作範例

     編輯:PHP 綜合知識

從零打造 PHP 新聞發佈系統:資料庫設計、核心函數與顯示邏輯

第一步:建立資料表

CREATE TABLE news (
    n_id INT(255) NOT NULL AUTO_INCREMENT,
    n_date DATETIME NOT NULL,
    news TEXT NOT NULL,
    PRIMARY KEY(n_id)
);

第二步:資料庫連線設定

$database_user_name = "root";
$database_password = "";
$database_name = "news";
$time_offset = "0";

第三步:封裝常用函數

function connect_db() {
    global $database_user_name, $database_password;
    $db = mysql_connect("localhost", $database_user_name, $database_password);
    return $db;
}

function db_name() {
    global $database_name;
    return $database_name;
}

function get_now() {
    $db = connect_db();
    $db_name = db_name();
    mysql_select_db($db_name, $db);
    $sql = "SELECT NOW() AS now";
    $result = mysql_query($sql, $db);
    $myrow = mysql_fetch_array($result);
    return $myrow["now"];
}

第四步:新聞顯示邏輯

  • 支援顯示全部新聞或限定筆數($show_news_sub)
  • 日期時間格式化輸出(DATE_FORMAT)
  • 管理員模式顯示後台連結
  • 分頁/「顯示全部」連結動態產生
  • 新聞內容用 nl2br() 處理換行
  • 省略版面標籤以利閱讀核心邏輯

核心查詢程式碼片段

$db = connect_db();
$db_name = db_name();
mysql_select_db($db_name, $db);

if ($show_news_sub) $show_news = $show_news_sub;
if (!ereg("([0-9]{".strlen($show_news)."})", $show_news)) $show_news = "ALL";

if (strtoupper($show_news) == "ALL") {
    $sql = "SELECT DATE_FORMAT(n_date,'%m/%d/%Y') AS n_date,
                   DATE_FORMAT(n_date,'%H:%i') AS n_time,
                   news, n_date AS date
            FROM news ORDER BY date DESC";
} else {
    $link = "<a href=...>All news</a>";
    $sql = "SELECT ... FROM news ORDER BY n_date DESC LIMIT $show_news";
}

$result = mysql_query($sql, $db);
$num_rows = mysql_num_rows($result);

if($num_rows != 0) {
    while($myrow = mysql_fetch_array($result)) {
        $date = $myrow["n_date"];
        $time = $myrow["n_time"];
        $news = $myrow["news"];
        $n_id = $myrow["n_id"];
        // 依 $show_date, $show_time 設定顯示格式
        $cleannews = nl2br($news);
        // 輸出 HTML...
    }
}

改進建議

  1. 改用 PDO 或 mysqli 取代已棄用的 mysql_* 函數。
  2. 使用 Prepared Statements 防止 SQL 注入。
  3. 採用 MVC 架構 分離邏輯與視圖。
  4. 加入 分頁功能、分類/標籤、搜尋、RSS 輸出。
  5. 實作 後台管理介面(新增、編輯、刪除、權限控制)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved