2011-07-24 56 views
1

我想知道是否有人可以幫助我解決這個小問題。選擇不超過

我想從數據庫中選擇一些數字,其中數字不超過設定的數字。

這是我(摘錄):

$Level = "1"; //Retrieved from the DB, just keeping it simple. 
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <='users.Level'"); 

與此問題,它不會顯示任何東西,等於$的水平。 (Item ... Level:0) - Displays (Item ... Level:1) - 不顯示。

所以我想要的是相當於php的!> 1(不超過1),但是如果可能的話使用MYSQL格式,但是這不起作用。

+0

看起來你不會在MySQL查詢中的任何地方使用'$ Level'。 –

+0

您的意思是寫嗎?:'... AND store.LevelReq <='$ Level'「);' –

+1

[PHP中沒有'!>'運算符。](http://www.php.net /manual/en/language.operators.comparison.php) –

回答

1

您應該記住'不超過'總是等於''低於並等於',所以您應該使用field <= value。 (所以在你的情況下:field <= 1。)

+0

這就是我正在使用的(AND store.LevelReq <='users.Level'「);)但是,它現在不顯示。 – Anon2011

+1

如果你在同一個查詢中引用另一個表(所以'othertable.field'),你必須省略引號,否則MySQL會將它視爲*字符串*。 – KilZone

+0

..或者正確地做:'\'用戶\'。\'級別\''。 –

0

表和列分開轉義,因此,而不是'users.Level',請嘗試user.'level'。 (TABLE.COLUMN)

$Level = "1"; //Retrieved from the DB, just keeping it simple. 
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <= users.'Level'"); 
+0

沒有。反引號,而不是單引號。 –

+0

該表被稱爲用戶,但它現在工作,無論如何感謝:) – Anon2011

0

你是比較store.LevelReq字符串 「users.Level」,而不是列users.Level。刪除用戶周圍的報價。等級,一切都應該好!

+0

它現在的作品,現在,謝謝:) – Anon2011

1

我假設級別是表用戶的領域,如果這是真的,那麼在你查詢你有報價的問題,並與PHP VAR的查詢,請嘗試:

​​
+0

是的,這是真的,這是我自己的問題(像往常一樣大聲笑)。謝謝:) – Anon2011

0

確定你不應該使用反引號代替單引號?像這樣:

$Level = "1"; //Retrieved from the DB, just keeping it simple. 
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <=`users`.`Level`"); 
+0

你的意思是'\'用戶\'。\'級別\''? –

+0

這是完全錯誤的,因爲「級別」不是表格。 – Simon

+0

@Tomalak:難道不是這樣嗎? – Shef