php实现公告
PHP实现公告系统的方法
数据库设计
创建一个公告表(如announcements),包含字段:id(主键)、title(标题)、content(内容)、create_time(发布时间)、status(状态)。
CREATE TABLE `announcements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`create_time` datetime NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
);
发布公告功能 通过表单提交公告数据,插入到数据库中。

// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$title = $_POST['title'];
$content = $_POST['content'];
$create_time = date('Y-m-d H:i:s');
$sql = "INSERT INTO announcements (title, content, create_time) VALUES (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$title, $content, $create_time]);
header('Location: announce.php');
exit;
}
显示公告列表 从数据库中查询公告数据,展示在页面上。
$sql = "SELECT * FROM announcements WHERE status = 1 ORDER BY create_time DESC";
$stmt = $pdo->query($sql);
$announcements = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($announcements as $announcement) {
echo '<div class="announcement">';
echo '<h3>' . htmlspecialchars($announcement['title']) . '</h3>';
echo '<p>' . nl2br(htmlspecialchars($announcement['content'])) . '</p>';
echo '<small>' . $announcement['create_time'] . '</small>';
echo '</div>';
}
管理公告功能 提供编辑和删除公告的接口。

// 删除公告
if (isset($_GET['delete'])) {
$id = (int)$_GET['delete'];
$sql = "UPDATE announcements SET status = 0 WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$id]);
header('Location: manage.php');
exit;
}
前端页面设计 创建简洁的公告展示页面,包含标题、内容和发布时间。
<div class="announcement-container">
<h2>公告列表</h2>
<?php foreach ($announcements as $announcement): ?>
<div class="announcement-item">
<h3><?= htmlspecialchars($announcement['title']) ?></h3>
<p><?= nl2br(htmlspecialchars($announcement['content'])) ?></p>
<span class="time"><?= $announcement['create_time'] ?></span>
</div>
<?php endforeach; ?>
</div>
样式优化 使用CSS美化公告显示效果。
.announcement-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.announcement-item {
background: #f9f9f9;
padding: 15px;
margin-bottom: 20px;
border-radius: 5px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.announcement-item h3 {
color: #333;
margin-top: 0;
}
.time {
color: #666;
font-size: 0.9em;
}






