Php 按类别显示用户的帖子
下午好, 通过按类别列出帖子,寻找一些方向 作为一名PHP初学者,我已经开始编写CMS,直到现在一切都进展顺利 我已经做了一个链接到预设类别1,类别2等 我还有一个带有ID和Category name的categories表 一个用于用户帖子的表,其中还包含CatID和类别名称 我猜我需要连接表才能列出特定类别中的任何帖子,选择Cat 1查看所有Cat 1帖子。与第2类、第3类等相同 当用户添加帖子时,它会在users posts表中填充类别名称,但我没有得到CAT ID,也没有在categories表中添加任何内容,所以我如何调用它来显示分类帖子 我有一种感觉,我可能在想很多事情,把简单的事情复杂化了 我现在看到的代码完全无效 请帮我指出正确的方向,我什么都试过了 非常感谢大家提前 代码:Php 按类别显示用户的帖子,php,mysql,select,blogs,categories,Php,Mysql,Select,Blogs,Categories,下午好, 通过按类别列出帖子,寻找一些方向 作为一名PHP初学者,我已经开始编写CMS,直到现在一切都进展顺利 我已经做了一个链接到预设类别1,类别2等 我还有一个带有ID和Category name的categories表 一个用于用户帖子的表,其中还包含CatID和类别名称 我猜我需要连接表才能列出特定类别中的任何帖子,选择Cat 1查看所有Cat 1帖子。与第2类、第3类等相同 当用户添加帖子时,它会在users posts表中填充类别名称,但我没有得到CAT ID,也没有在categor
用于列出帖子的SQL可以检查URL中是否存在categoryID,如果存在,则使用它来过滤结果。。然后,您只需要创建一些指向同一页面的链接,将所需的类别id添加到URL
<a href='?cat=1'>Cat 1</a> | <a href='?cat=2'>Cat 2</a> | etc..
你的SQL是错误的,我认为这应该是可行的
$catSql = "SELECT *
FROM categories
LEFT JOIN users_posts
ON categories.ID = users_posts.CatID";
如果两个表都有ID列,那么ON条件没有任何意义,只有列列表和ID可能会导致重复列错误。您应该添加错误处理以查看到底是什么错误。谢谢您的回复。
$sql = "SELECT * FROM POSTS";
if(isset($_GET['cat'])){
$catID = (int)$_GET['cat']; //or something similar
$sql .= " LEFT JOIN category USING categoryID WHERE categoryID = $catID";
}
$catSql = "SELECT *
FROM categories
LEFT JOIN users_posts
ON categories.ID = users_posts.CatID";