0
基本上,我需要從幾個不同的表得到一組數據並顯示它,這取決於過濾器的值(下拉框,滑塊和標籤)構建查詢取決於過濾變量
這裏是我的查詢的時刻:
$query_string = 'SELECT DISTINCT * FROM users
JOIN user_subjects ON users.id = user_subjects.user_id
JOIN user_notifications ON users.id = user_notifications.user_id
';
if ($subjects != 'false') {
if (count($subjects) > 1)
{
// If there is more than 1 subject tag
$query_string .= ' WHERE user_subjects.subject_id = '.$subjects[0];
foreach ($subjects as $subject) {
$query_string .= ' OR user_subjects.subject_id = '.$subject;
}
}
else if (count($subjects) == 1)
{
// If there's only 1 subject tag, select it only
$query_string .= " WHERE user_subjects.subject_id = ".$subjects[0];
}
}
if ($subscription != 'All Subscriptions')
{
$query_string .= ' AND users.user_plan = "'.$subscription.'"';
}
所以查詢的那部分大多是工作,但我還需要從另一個表中選擇數據,根據過濾器。
在附加表中的數據(名爲 'user_notifications')如下: - USER_ID - 行動 - ENTITY_ID - exp_rewarded - 時間戳
所以基本上我需要這個表與鏈接用戶的信息,並獲得我需要的一切。對不起,如果這不是特別清楚。我仍然試圖找出自己。讓我知道如果它不是。
好吧,以便絕對看起來有所幫助。我還有另一部分查詢正在添加更多: 「$ quiz_query。='AND user_notifications.action =」quiz_gold「或user_notifications.action =」quiz_silver「或user_notifications.action =」quiz_bronze「';」 它似乎只檢查第一個? – Sneaksta
我建議添加括號,例如。 WHERE(user_subjects.subject_id = 1或user_subjects.subject_id = 2)AND(users.user_plan = 2)AND(user_notifications.action =「quiz_gold」或user_notifications.action =「quiz_silver」)'。這會給你一個線索嗎? – sel
這是關於運算符優先級的全部內容。 OR具有比AND更低的運算符優先級。你可以檢查[this](http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html)。 – sel