技术文摘
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文章分类
- ThinkPHP6彻底去除右下角图标的方法
- 轻松上手桌面自动化脚本的方法,有哪些推荐的库和框架
- Python OSS2如何为特定路径对象设置公开访问权限
- macOS下virtualenv不能用,怎样正确创建与激活虚拟环境
- conda安装CUDA后如何在pip list中找到它们
- 用Python的turtle库绘制星号正方形的方法
- 把含重复元素的集合拆分成多个无重复元素小集合的方法
- FastAPI中使用逗号分割列表类型查询参数的方法
- Python Flask框架中拦截请求的方法
- Flask-SQLAlchemy中ORM对象的序列化方法
- Python Logger不能输出debug和info级别日志信息的原因
- 前端网络测速功能设计方法,实时获取不同BSSID网速信息
- Python字典中None作为键出现的原因
- Python爬虫如何完整提取含超链接的文本内容
- Pandas把CSV文件另存为XLSX后时间值变NaN问题的解决方法