2015-07-12 92 views
3

下午所有,按類別顯示用戶的帖子

尋找與類別列表帖子的一些方向。

我已經開始編碼一個CMS(作爲一個PHP初學者),直到現在一切進展順利。

我已鏈接到預先設定的類別(類別1,類別2等等等等)

我也有ID和類別名稱的類別表。

一種與它CATID和類別名稱以及

我猜我需要連接表,以便能夠列出特定類別職位的用戶posts表(選擇1類,查看所有貓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

你'ON'條件不作任何意義(沒有條件,只是一個列表列)和您的ID可能導致重複的列錯誤(如果兩個表都有一個ID列)。您應該添加錯誤處理來查看確切的錯誤。 – jeroen

+0

感謝您的回覆。 –

回答

1

你的SQL是錯誤的,我認爲這應該工作

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

你上市的帖子可以檢查,看是否有的categoryID在URL中存在,如果是的話,用它來過濾SQL結果..然後,您只需創建一些指向同一頁面的鏈接即可將所需的類別標識添加到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"; 
}