我有我的自定義論壇的幾個鏈接表:categories
,sub_categories
和posts
鏈接表和SQL SELECT查詢
基本上,我已經能夠添加三個類別和五個子類別的人,當他們做出最新帖子。
我還可以讓人們'聽'某些類別和子類別,並讓他們在頁面的一側方便訪問欄。
我的表被設置從而(僅示出了用於便於relavent字段):
帖子:
id INT
category_id VARCHAR(12)
sub_category_id VARCHAR(35)
類:
id INT
name VARCHAR(20)
- 行業標準:
id INT
name VARCHAR(20)
我
posts
表
,我店通過他們的ID設置的類別和子類的格式如下:
category_id [2][4][8]
sub_category_id [1][2][3][4][5]
從而使我能夠執行在PHP下面的查詢和獲取基於崗位在類別和子類別:
SELECT * FROM posts WHERE category_id LIKE '%[{$id}]%' AND sub_category_id LIKE '%[{$id2}]%'
我是選擇sub_categories
的人「聽」到訪問欄問題...
$sql = "SELECT title, id FROM categories";
$query = mysql_query($sql);
$list = array();
while ($row = mysql_fetch_assoc($query)){
$list[$row['title']] = array();
$sql = "SELECT sub_categories.title FROM sub_categories, posts WHERE (category_id LIKE '%[{$row['id']}]%') AND (????) LIMIT 0,100";
$query = mysql_query($sql);
while($result = mysql_fetch_assoc($query)){
$list[$row['title']][] = $result['title'];
}
}
print_r($list);
顯然你可以看到我卡在哪裏(????)
,但在我解釋我在做什麼之前,我會解釋我正在尋找的輸出是什麼。
當我打印$list
數組時,我希望它打印一個以類別作爲第一個鍵的多維數組,它們的值是在主類別中已標記的子類別數組。
我遇到的問題是在郵政表的sub_category_id
字段中,請記住這些值的格式爲[1][2][3]
,我需要檢查該值與子類別字段id
的值。
我曾嘗試以下:
"SELECT sub_categories.title FROM sub_categories, posts WHERE (category_id LIKE '%[{$row['id']}]%') AND (sub_category_id LIKE '%[sub_categories.id]%') LIMIT 0,100"
但沒有奏效。我不知道我的查詢中是否有錯誤,或者它是否應該工作,但如果有人能告訴我該怎麼做,或者我的代碼出錯了,我將不勝感激!
注:我試圖找到哪個sub_categories
出現在哪個categories
基於人們在帖子中標記他們在一起。
......我簡直不敢相信。我實際上使用這個確切的解決方案來存儲用戶最喜歡的類別和子類別......出於某種原因,我完全忘記了它,因爲我專注於問題,而不是解決方案! – 2012-03-08 14:34:11
還有一個提示:您可以爲類別和子類別設置一個表格,其中包含「id」,「parent_id」(NULLABLE)和「name」列。這樣,您還可以強制執行每個子類別與其父類別之間的關係。 – bfavaretto 2012-03-08 14:34:17
由於我正在建設的論壇的性質,子類別可以屬於多個類別。這是漫畫,動漫和日本文化,包括粉絲小說和粉絲藝術,所以基本上,有人可能喜歡漫畫(即火影忍者)並寫下「粉絲小說」。火影忍者也是動畫片!我非常鬆散地使用術語「子類別」! – 2012-03-08 14:42:14