技术文摘
PHP开发实战:借助PHP与MySQL达成文章分类功能
在当今数字化信息爆炸的时代,对于内容管理系统而言,文章分类功能至关重要。它能帮助用户快速定位所需信息,提升用户体验。本文将详细介绍如何借助 PHP 与 MySQL 实现文章分类功能。
我们需要创建数据库和数据表。打开 MySQL 数据库管理工具,创建一个新的数据库,例如“article_db”。接着,在该数据库中创建两张关键数据表:“categories”用于存储文章分类信息,“articles”用于存储文章内容。
对于“categories”表,设计字段包括“category_id”(分类 ID,作为主键,自增长)、“category_name”(分类名称,不能为空)。“articles”表字段则有“article_id”(文章 ID,主键,自增长)、“article_title”(文章标题,不能为空)、“article_content”(文章内容)、“category_id”(外键,关联“categories”表的“category_id”)。
接下来进行 PHP 代码开发。先创建一个用于连接数据库的 PHP 文件,如“connect.php”。使用 mysqli 函数连接到刚才创建的数据库:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "article_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: ". $conn->connect_error);
}
然后创建添加文章分类的页面“add_category.php”。通过表单获取用户输入的分类名称,使用 SQL 语句将新分类插入“categories”表:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$category_name = $_POST["category_name"];
$sql = "INSERT INTO categories (category_name) VALUES ('$category_name')";
if ($conn->query($sql) === TRUE) {
echo "分类添加成功";
} else {
echo "错误: ". $sql. "<br>". $conn->error;
}
}
对于添加文章的页面“add_article.php”,通过表单获取文章标题、内容以及所属分类 ID,将文章信息插入“articles”表。
最后,在展示文章页面“display_articles.php”,通过 SQL 语句从两张表中获取分类及文章信息,并进行关联展示:
$sql = "SELECT articles.article_title, articles.article_content, categories.category_name
FROM articles
JOIN categories ON articles.category_id = categories.category_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<h2>". $row["article_title"]. "</h2>";
echo "<p>分类: ". $row["category_name"]. "</p>";
echo "<p>". $row["article_content"]. "</p>";
}
} else {
echo "没有找到文章";
}
通过以上步骤,我们就成功实现了借助 PHP 与 MySQL 的文章分类功能,能有效管理和展示文章信息。
TAGS: PHP与MySQL PHP开发实战 文章分类功能 PHP MySQL文章分类
- Java 线程池中线程异常后的处置:销毁还是复用
- Python 十大自动化工具及脚本实例
- 探究项目升级至 React19 的难度及生态:借助 React-markdown 达成代码高亮
- Python smtplib 详解
- WPF 中的命令模式:铸就清晰且可复用的代码法宝
- 开发人员必知的八大标准
- CSS offset-path 现支持基本形状,让路径动画更易用
- Flutter 灰屏问题的了解与解决
- 生成式人工智能对 DevSecOps 是福还是祸?
- 为何众多 Java 使用者多年仍未理解泛型
- 十大技巧助你提升 C++ 代码效率与优雅度
- RocketMQ 的 NameServer :代码少却优秀,是如何做到的?
- 历经 3 天,我终寻得【拖拽功能】的完美解决方案
- 如何用 React 实现密码输入框的【密码强度】展示
- 一次.NET 某工厂报警监控设置崩溃剖析