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

PHP + MySQL 簡易新聞管理系統完整源碼實現

     編輯:MySQL 綜合教學

PHP + MySQL 簡易新聞管理系統完整源碼實現

實現目標:使用 PHP 與 MySQL 函數完成新聞的發布、瀏覽、修改、刪除全流程。

一、數據庫設計

CREATE DATABASE newsdb;
CREATE TABLE news (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(64) NOT NULL,
    keywords VARCHAR(64) NOT NULL,
    author VARCHAR(16) NOT NULL,
    addtime INT UNSIGNED NOT NULL,
    content TEXT NOT NULL
);

二、文件架構

  • dbconfig.php:數據庫連接配置
  • menu.php:公共導航欄
  • index.php:新聞列表首頁
  • add.php:發布新聞表單
  • edit.php:編輯新聞表單
  • action.php:增刪改邏輯處理

三、核心代碼節選

dbconfig.php

<?php
define("HOST", "localhost");
define("USER", "root");
define("PASS", "root");
define("DBNAME", "newsdb");
?>

menu.php

<h2>新聞管理系統</h2>
<a href="index.php">瀏覽新聞</a>
<a href="add.php">發布新聞</a>
<hr width="90%"/>

add.php(表單提交至 action.php?action=add)

<form action="action.php?action=add" method="post">
  <table>
    <tr><td>標題:</td><td><input name="title"/></td></tr>
    <tr><td>關鍵字:</td><td><input name="keywords"/></td></tr>
    <tr><td>作者:</td><td><input name="author"/></td></tr>
    <tr><td>內容:</td><td><textarea name="content"></textarea></td></tr>
    <tr><td colspan="2"><input type="submit" value="添加"/></td></tr>
  </table>
</form>

action.php(核心業務邏輯)

<?php
require("dbconfig.php");
$link = @mysql_connect(HOST, USER, PASS) or die("連接失敗!");
mysql_select_db(DBNAME, $link);

switch($_GET["action"]) {
    case "add":
        $title = $_POST["title"];
        $keywords = $_POST["keywords"];
        $author = $_POST["author"];
        $content = $_POST["content"];
        $addtime = time();
        $sql = "INSERT INTO news VALUES (NULL, '{$title}', '{$keywords}', '{$author}', {$addtime}, '{$content}')";
        mysql_query($sql, $link);
        $id = mysql_insert_id($link);
        echo $id > 0 ? "添加成功!" : "添加失敗!";
        break;

    case "del":
        $id = $_GET['id'];
        $sql = "DELETE FROM news WHERE id={$id}";
        mysql_query($sql, $link);
        header("Location: index.php");
        break;

    case "update":
        $id = $_POST['id'];
        $sql = "UPDATE news SET title='{$_POST[title]}', keywords='{$_POST[keywords]}', author='{$_POST[author]}', content='{$_POST[content]}' WHERE id={$id}";
        mysql_query($sql, $link);
        header("Location: index.php");
        break;
}
mysql_close($link);
?>

index.php(列表展示與操作入口)

<?php
require("dbconfig.php");
$link = @mysql_connect(HOST, USER, PASS) or die("連接失敗!");
mysql_select_db(DBNAME, $link);
$sql = "SELECT * FROM news ORDER BY addtime DESC";
$result = mysql_query($sql, $link);
?>
<table border="1">
  <tr><th>ID</th><th>標題</th><th>關鍵字</th><th>作者</th><th>時間</th><th>內容</th><th>操作</th></tr>
  <?php while($row = mysql_fetch_assoc($result)): ?>
  <tr>
    <td><?=$row['id']?></td>
    <td><?=$row['title']?></td>
    <td><?=$row['keywords']?></td>
    <td><?=$row['author']?></td>
    <td><?=date("Y-m-d", $row['addtime'])?></td>
    <td><?=$row['content']?></td>
    <td>
      <a href="javascript:dodel(<?=$row['id']?>)">刪除</a>
      <a href="edit.php?id=<?=$row['id']?>">修改</a>
    </td>
  </tr>
  <?php endwhile; ?>
</table>
<?php mysql_free_result($result); mysql_close($link); ?>

edit.php(回顯數據並提交更新)

<?php
require("dbconfig.php");
$link = @mysql_connect(HOST, USER, PASS) or die("連接失敗!");
mysql_select_db(DBNAME, $link);
$sql = "SELECT * FROM news WHERE id={$_GET['id']}";
$result = mysql_query($sql, $link);
$news = mysql_fetch_assoc($result);
?>
<form action="action.php?action=update" method="post">
  <input type="hidden" name="id" value="<?=$news['id']?>" />
  <table>
    <tr><td>標題:</td><td><input name="title" value="<?=$news['title']?>" /></td></tr>
    <tr><td>關鍵字:</td><td><input name="keywords" value="<?=$news['keywords']?>" /></td></tr>
    <tr><td>作者:</td><td><input name="author" value="<?=$news['author']?>" /></td></tr>
    <tr><td>內容:</td><td><textarea name="content"><?=$news['content']?></textarea></td></tr>
    <tr><td colspan="2"><input type="submit" value="編輯"/></td></tr>
  </table>
</form>

提示:本示例使用已棄用的 mysql_* 函數,現代項目請改用 mysqli 或 PDO 並採用預處理語句防範 SQL 注入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved