2012-10-28 58 views
0

這看起來有什麼問題。我沒有得到任何明顯的錯誤,但它沒有做它應該做的事情。我傾向於OR語句存在問題,但是我已經將用戶名放在parenth中,id放在parenth中,並且都不起作用。老實說,我只是在這裏發佈這個,因爲看五個小時對我來說已經足夠了。 希望事情看起來公然錯了,這不是別的地方的代碼:/php中的多個AND語句MYSQL

$fetch_userone_idslots = mysql_query("SELECT id_1, id_2, id_3, id_4, id_5, id_6 FROM users WHERE id_1 = '$battle_id' || id_2 = '$battle_id || id_3 = '$battle_id || id_4 = '$battle_id || id_5 = '$battle_id || id_6 = '$battle_id && username == '$user_logged_in'"); 

while ($row = mysql_fetch_array($fetch_userone_idslots)){ 
$useroneidslot_1 = $row['id_1']; 
$useroneidslot_2 = $row['id_2']; 
$useroneidslot_3 = $row['id_3']; 
$useroneidslot_4 = $row['id_4']; 
$useroneidslot_5 = $row['id_5']; 
$useroneidslot_6 = $row['id_6']; 
} 
+1

歡迎來到Stack Overflow! [**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+0

閱讀mysql提供的錯誤消息是更多知識和理解的第一步。它有點傷心,你需要對你的代碼進行同行評審,以瞭解mysql已經告訴你的錯誤。 – hakre

回答

4

您正在使用的是在MySQL中不存在的==。只使用=。你可以這樣簡化你的查詢

SELECT id_1, id_2, id_3, id_4, id_5, id_6 FROM users 
WHERE '$battle_id' in (id_1, id_2, id_3, id_4, id_5, id_6) 
and username = '$user_logged_in' 
+0

哦哇,我感到愚蠢。你還可以用!=? – VVV

+0

使用可以在MySQL中使用'!='。但通常使用'<>'。 –

+0

可以使用'<>'和'!='。請參閱[Operator'not equal'](http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_not-equal) – Jocelyn

1

MySQL你需要使用ANDOR||&&。還有一件事沒有==,只能用=

SELECT id_1, id_2, id_3, id_4, id_5, id_6 
FROM users 
WHERE (
     id_1 = '$battle_id' OR 
     id_2 = '$battle_id' OR 
     id_3 = '$battle_id' OR 
     id_4 = '$battle_id' OR 
     id_5 = '$battle_id' OR 
     id_6 = '$battle_id' 
    ) AND 
     username = '$user_logged_in' 
+0

錯誤代碼爲'||'和'&&'。請參見[MySQL中的邏輯運算符](http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html) – Jocelyn

0

編輯:

,如果你需要一個eqation不要使用==。在SQL中==只是=。 SQL與C不同,它是一種查詢語言,語法不同,因爲它用於不同的puprose。我的建議是遵循SQL sintax來避免類似的錯誤。

+1

錯誤代碼爲'||'和'&&'。請參見[MySQL中的邏輯運算符](http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html) – Jocelyn

+0

是的,但沒有'=='它只是在方程中用'=' 。最好遵循正確的SQL語法,即使'||'和'&&'可以在MySQL中工作。正如你所看到的,遵循這種錯誤的方式,這個人使用'=='而不是'='。 – Reflective

+0

你的回答是錯誤的,因爲它表示''''和'&&'不能在MySQL中使用。點擊「編輯」更新您的答案,使其更加清晰。 – Jocelyn