Я пытаюсь создать простую систему блогов.Таблица базы данных, как показано ниже.
Сообщений
+----+----------+-------------+
|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, ООП, Best Practices.Как я могу справиться с этим с помощью OOP PHP.
И, пожалуйста, также предоставьте ваши ответы для получения категорий.
Я не хочу присоединяться к таблицам post_categories
и posts
для получения данныхпотому что там есть еще несколько столбцов.
Также может быть несколько категорий в одном сообщении.