嗨,大家好!今天我要给大家分享一篇关于如何用PHP搭建一个简单的新闻发布系统的小教程,相信对于很多PHP初学者来说,这是一个非常实用且有趣的项目,我们废话不多说,直接进入正题吧!
我们需要准备好开发环境,这里需要用到的是PHP环境、MySQL数据库和一个简单的文本编辑器(例如Notepad++、Sublime Text等),确保这些软件都已经安装好,并且能正常运行。
创建数据库和表
打开MySQL数据库,创建一个新的数据库,命名为“news”(新闻),在命令行中执行以下代码:
CREATE DATABASE news;
创建一个名为“news_list”的表,包含以下字段:id(主键)、title(新闻标题)、content(新闻内容)、author(作者)和publish_time(发布时间),执行以下代码:
USE news;
CREATE TABLE news_list (
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
author VARCHAR(50) NOT NULL,
publish_time DATETIME NOT NULL,
PRIMARY KEY (id)
);
编写PHP代码
创建一个名为“conn.php”的文件,用于连接数据库,将以下代码复制到conn.php文件中:
<?php
// 数据库配置信息
$host = 'localhost'; // 服务器地址
$username = 'root'; // 数据库用户名
$password = 'root'; // 数据库密码
$dbname = 'news'; // 数据库名
// 创建数据库连接
$conn = new mysqli($host, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
创建新闻发布页面“add_news.php”。
<?php
include 'conn.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加新闻</title>
</head>
<body>
<h2>添加新闻</h2>
<form action="save_news.php" method="post">
标题:<input type="text" name="title" required><br><br>
内容:<textarea name="content" rows="5" cols="50" required></textarea><br><br>
作者:<input type="text" name="author" required><br><br>
<input type="submit" value="发布新闻">
</form>
</body>
</html>
创建保存新闻的脚本“save_news.php”。
<?php
include 'conn.php';
// 获取表单数据
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_POST['author'];
$publish_time = date('Y-m-d H:i:s');
// 插入数据到数据库
$sql = "INSERT INTO news_list (title, content, author, publish_time) VALUES ('$title', '$content', '$author', '$publish_time')";
if ($conn->query($sql) === TRUE) {
echo "新闻发布成功!";
echo "<a href='index.php'>查看新闻列表</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
创建新闻列表页面“index.php”。
<?php
include 'conn.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新闻列表</title>
</head>
<body>
<h2>新闻列表</h2>
<a href="add_news.php">添加新闻</a><br><br>
<table border="1">
<tr>
<th>标题</th>
<th>作者</th>
<th>发布时间</th>
</tr>
<?php
// 查询新闻列表
$sql = "SELECT id, title, author, publish_time FROM news_list ORDER BY id DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td><a href='news_detail.php?id=".$row['id']."'>".$row['title']."</a></td>";
echo "<td>".$row['author']."</td>";
echo "<td>".$row['publish_time']."</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='3'>暂无新闻</td></tr>";
}
?>
</table>
</body>
</html>
创建新闻详情页面“news_detail.php”。
<?php
include 'conn.php';
// 获取新闻ID
$id = $_GET['id'];
// 查询新闻详情
$sql = "SELECT title, content, author, publish_time FROM news_list WHERE id=$id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $row['title']; ?></title>
</head>
<body>
<h2><?php echo $row['title']; ?></h2>
作者:<?php echo $row['author']; ?><br>
发布时间:<?php echo $row['publish_time']; ?><br><br>
内容:<p><?php echo $row['content']; ?></p>
<a href="index.php">返回新闻列表</a>
</body>
</html>
<?php
} else {
echo "该新闻不存在!";
}
?>
至此,一个简单的新闻发布系统就搭建完成了,这只是一个基础的版本,你还可以在此基础上进行扩展,如添加新闻编辑、删除功能,增加权限验证等,希望这个小教程能对你有所帮助!如果你有任何问题,欢迎在评论区交流,一起加油吧!

