我尝试建立一个简单的博客系统。数据库表如下所示。
帖子
+----+----------+-------------+
|id | title | content |
+----+----------+-------------+
|1 | Tile | Content |
+----+----------+-------------+
|2 | Tile 2 | Content 2 |
+----+----------+-------------+
类别
+--------+-------------+
|id | category |
+--------+-------------+
|1 | Category1 |
+--------+-------------+
|2 | Category2 |
+--------+-------------+
|3 | Category3 |
+--------+-------------+
职位类别
+--------+-------------+
|postID | categoryID |
+--------+-------------+
|1 | 1 |
+--------+-------------+
|1 | 2 |
+--------+-------------+
|1 | 3 |
+--------+-------------+
|2 | 2 |
+--------+-------------+
|2 | 3 |
+--------+-------------+
我用这个密码
<?php
$posts = DB::get("SELECT * FROM `posts` LIMIT 5");
foreach ($posts as $post) {
echo $post["title"];
$category_ids = DB::get("SELECT categoryID FROM `post_categories` WHERE postID = " . $post["id"]);
$ids = join(", ", $category_ids);
$categorys = DB::get("SELECT * FROM `categories` WHERE id IN (" . $ids . ")");
foreach ($categorys as $category) {
echo '<a href="...">' . $category["category"] . '</a>';
}
echo $post["content"];
}
?>
我知道这不是获取类别的好方法。
甚至它一次又一次地查询同一个类别。
有谁能给我一些指导方针/资源/教程来学习php逻辑、oop和最佳实践吗。如何使用oop-php处理这个问题。
也请提供你的ans获取类别。
我不想加入 post_categories
以及 posts
表来获取数据,因为其中没有更多的列。
在一篇文章中也可能有多个类别。
2条答案
按热度按时间vc9ivgsu1#
关于具体实现,您的答案有点宽泛,我将合并类别查询,生成输出并回显一次
如果你想要更多的顺序,我建议你使用一个框架,这将帮助你把事情安排好,也许可以阅读一篇关于mvc的文章
w1jd8yoj2#
为什么你不想加入。。与单个联接查询相比,您的代码更为复杂,时间也更为昂贵