当前位置:首页 > PHP

php实现公告

2026-04-03 16:39:39PHP

PHP实现公告系统

数据库设计 创建公告表announcements,包含字段:id(主键)、title(标题)、content(内容)、created_at(发布时间)、updated_at(更新时间)。

CREATE TABLE announcements (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

添加公告功能 通过表单提交公告信息,使用PHP处理并存入数据库。

php实现公告

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = $_POST['title'];
    $content = $_POST['content'];

    $stmt = $pdo->prepare("INSERT INTO announcements (title, content) VALUES (?, ?)");
    $stmt->execute([$title, $content]);

    header("Location: announcements.php");
    exit;
}
?>
<form method="post">
    <input type="text" name="title" placeholder="公告标题" required>
    <textarea name="content" placeholder="公告内容" required></textarea>
    <button type="submit">发布公告</button>
</form>

显示公告列表 从数据库查询公告并按发布时间倒序排列。

<?php
$stmt = $pdo->query("SELECT * FROM announcements ORDER BY created_at DESC");
$announcements = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($announcements as $announcement) {
    echo "<h3>{$announcement['title']}</h3>";
    echo "<p>{$announcement['content']}</p>";
    echo "<small>发布时间: {$announcement['created_at']}</small>";
}
?>

编辑和删除公告 提供编辑和删除功能,确保操作权限控制。

php实现公告

<?php
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    $stmt = $pdo->prepare("DELETE FROM announcements WHERE id = ?");
    $stmt->execute([$id]);
    header("Location: announcements.php");
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit'])) {
    $id = $_POST['id'];
    $title = $_POST['title'];
    $content = $_POST['content'];

    $stmt = $pdo->prepare("UPDATE announcements SET title = ?, content = ? WHERE id = ?");
    $stmt->execute([$title, $content, $id]);

    header("Location: announcements.php");
    exit;
}
?>

分页功能 实现公告列表的分页显示,避免数据量过大时加载缓慢。

<?php
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 5;
$offset = ($page - 1) * $perPage;

$stmt = $pdo->prepare("SELECT * FROM announcements ORDER BY created_at DESC LIMIT ? OFFSET ?");
$stmt->bindValue(1, $perPage, PDO::PARAM_INT);
$stmt->bindValue(2, $offset, PDO::PARAM_INT);
$stmt->execute();
$announcements = $stmt->fetchAll(PDO::FETCH_ASSOC);

$total = $pdo->query("SELECT COUNT(*) FROM announcements")->fetchColumn();
$pages = ceil($total / $perPage);

for ($i = 1; $i <= $pages; $i++) {
    echo "<a href='announcements.php?page=$i'>$i</a> ";
}
?>

注意事项

  • 使用预处理语句防止SQL注入。
  • 对用户输入进行验证和过滤。
  • 确保敏感操作(如删除)有权限控制。
  • 考虑使用框架(如Laravel)简化开发流程。

标签: 公告php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…

php变量的实现

php变量的实现

PHP变量的实现机制 PHP变量的实现基于Zend引擎的底层数据结构。核心结构体zval用于存储变量类型和值,其设计允许动态类型转换和高效内存管理。 zval结构体 PHP变量通过zval结构体实现…