按类别显示用户的帖子

Displaying a User's Posts by Category

大家下午好,

通过按类别列出 post 寻找方向。

我已经开始编写 CMS(作为 PHP 初学者),到目前为止一切顺利。

我已经link预设类别(类别1、类别2等)

我还有一个类别 table,其中包含 ID 和类别名称。

A table 供用户 post 使用 CatID 和类别名称

我想我需要加入 tables 才能列出特定类别中的任何 posts(Select Cat 1 以查看所有 Cat 1 posts. 与 Cat 2、3 等相同)

当用户添加 post 时,它会在用户 posts table 中填充类别名称,但我没有得到 CAT ID,也没有添加任何内容到类别 table 所以我如何调用它来显示分类的 posts?

我有一种感觉,我可能想得太多了,把本来应该很容易做的事情复杂化了。

我目前的代码(见下文)完全没有效果?

请帮我指出正确的方向,我已经尝试了所有方法。

非常感谢大家

代码:

$catSql ="SELECT        ID, Category
        FROM        categories
        LEFT JOIN   users_posts
        ON          CatID, category, BlogID";

$catQry = mysqli_query($link, $catSql);

while ($row = mysqli_fetch_assoc($catQry)){

    if($row['category_name'] != $lastCategory)
{
   $lastCategory = $row['category'];
   echo "<br /><strong>$lastCategory</strong>";
}        
echo $row['category'] . ' <br />';

}

您用于列表帖子的 SQL 可以检查 URL 中是否存在 categoryID,如果存在,则使用它来过滤结果。然后,您只需要创建一些指向同一页面的链接,以将所需的类别 ID 添加到 URL.

<a href='?cat=1'>Cat 1</a> | <a href='?cat=2'>Cat 2</a> | etc..

SQL

$sql = "SELECT * FROM POSTS";
if(isset($_GET['cat'])){
    $catID = (int)$_GET['cat']; //or something similar
    $sql .= " LEFT JOIN category USING categoryID WHERE categoryID = $catID";
}

你的 SQL 是错误的我认为这应该有效

$catSql = "SELECT *
    FROM        categories
    LEFT JOIN   users_posts
    ON          categories.ID = users_posts.CatID";