我的確看過這篇文章(Get all posts from a specific category),但它似乎並不適用於我的情況。選擇某一類別的所有帖子
我的情況是,我有兩個表如下:
1 /表類別
category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
lang_id TINYINT UNSIGNED NOT NULL,
name VARCHAR(60) NOT NULL,
PRIMARY KEY (category_id),
UNIQUE (name)
) ENGINE = INNODB';
其中LANG_ID的值是1(相當於英國)和2(相當於越南),這是用於使用$ _SESSION ['lid']進行過濾。
category_id lang_id name
1 1 Arts and Entertainment
2 1 Computers
3 2 Nghệ thuật và Giải trí
4 2 Máy tính
2 /表帖子:
'CREATE TABLE posts (
post_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
category_id TINYINT UNSIGNED NOT NULL,
lang_id TINYINT(3) UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
subject VARCHAR(150) NOT NULL,
PRIMARY KEY (post_id),
INDEX (category_id),
INDEX (lang_id),
INDEX (user_id)
) ENGINE = MYISAM';
在其中CATEGORY_ID是所述第一表的外鍵。
question_id category_id lang_id user_id subject
1 1 1 1 arts
2 4 2 1 máy tính
3 5 1 1 business and money
我想在鼠標點擊它時選擇某個類別的文章。所以,我運行這個查詢:
$q = "SELECT subject
FROM categories AS ca
INNER JOIN questions AS q
USING (category_id)
WHERE q.lang_id = {$_SESSION['lid']}
GROUP BY ca.category_id
$r = mysqli_query($database_connect, $q)
if(mysqli_num_rows($r) > 0) {
while ($subject = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
echo '<ul>
<li>'. $subject['subject']. '</li>
</ul>';
}
但結果不會按要求返回。例如,當我點擊類別1(藝術和娛樂)時,結果返回兩個主題(category_id 1中發佈的藝術,category_id 5中發佈的business和money)。
您能幫我重新構建查詢嗎?我真的被困在這裏。
的職位類別ID刪除GROUP BY子句ca.category_id – souvickcse
你不檢查所選類別的ID在所有 –
如果您正在使用帖子表您必須加入類別和帖子,但我可以看到您正在加入類別和問題。 –