私はMySQLを学ぼうとしているので、小さなブログシステムを作成しました。
MySQLには3つのテーブルがあります。
posts
:
id | title
----------------
1 | Post Title 1
2 | Post Title 2
categories
:
id | title | parent
--------------------------------
10 | category10 | 0
11 | category11 | 0
12 | category12 | 10
post_category_relations
:
id | post_id | category_id
----------------------------------
1 | 1 | 10
2 | 2 | 12
3 | 3 | 11
各投稿には複数のカテゴリを含めることができ、それらの関係はpost_category_relationsに保存されます。
category10
したがって、index.php?category = 10にアクセスすると、子フォルダーからの投稿も含めて、各投稿に関連するものを取得したいと思いますcategory12
。
PHPでの未完成のスニペット
$folder_id = $_GET["category"]; // Get Category ID from the URL
$sql = "SELECT * FROM posts
JOIN categories
JOIN post_category_relations
// And I don't really know what should I do here
// because I need the child categories first, then the relations
// then I can get the post too from the post_id of the relations
";
mysql_query($sql);
これには高度なMySQLスキルが必要になることはわかっていますが、助けていただければ幸いです。私はすでにこれをPHPで作成しましたが、4つのループを使用する必要があります。これは、MySQLで可能な場合、最善の方法ではありません。方法はまだわかりません:)