下午全部,
寻找按类别列出帖子的方向。
我已经开始编写CMS(作为PHP初学者)并且直到现在一切进展顺利。
我已经预先设定了类别(类别1,类别2等)的链接
我还有一个带有ID和类别名称的类别表。
包含CatID和类别名称的用户帖子的表格
我猜我需要加入牌才能列出特定类别的任何帖子(选择Cat 1以查看所有Cat 1帖子。同样适用于Cat 2,3等等)
当用户添加帖子时,它会填写用户帖子表中的类别名称,但我没有获得CAT ID,也没有添加到类别表中,那么我如何调用它来显示分类帖子?
我有一种感觉,我可能会考虑很多东西并且过度复杂化应该很简单的事情。
我现在的代码(见下文)根本没有效果?
请帮助我指出正确的方向,我已经尝试了一切。
非常感谢所有提前
CODE:
$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 />';
}
答案 0 :(得分:1)
用于列出帖子的SQL可以检查URL中是否存在categoryID,如果存在,则使用它来过滤结果..然后,您只需创建一些指向同一页面的链接即可添加URL的必需类别ID。
<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";
}
答案 1 :(得分:1)
你的SQL错了我认为这应该有效
$catSql = "SELECT *
FROM categories
LEFT JOIN users_posts
ON categories.ID = users_posts.CatID";