2013-03-16 54 views
0

我試圖通過同一數據庫中的成員'rank'字段從我的mysql數據庫中的字段獲得排名。在查詢排名時獲取排名int

到目前爲止我試圖做到這一點。

SELECT 'members'.'rank', 'us_army_ranks'.'id' FROM members LEFT JOIN 'us_army_ranks' ON 'members'.'rank'='us_army_ranks'.'rank' 

我卡住了,不能真的把它工作。我使用$id=$_GET['id'];也會使它看起來像這樣。

SELECT 'members'.'rank', 'us_army_ranks'.'id' FROM members WHERE id='$id' LEFT JOIN 'us_army_ranks' ON 'members'.'rank'='us_army_ranks'.'rank' 

我得到一個:

「警告:mysql_fetch_array()預計參數1是資源, 布爾在ranks.php給出的第13行」 回報,但沒有任何 數據丟失。

+0

我希望美國軍隊沒有使用**'的mysql _ *()'**功能... – 2013-03-16 19:43:08

回答

1

您的問題是使用單引號'而不是反向引用`圍繞您的表和字段名稱。

因爲它們不是關鍵字(它們中的任何一個),所以根本不需要在表和字段名稱周圍使用這些引號。

做:

SELECT members.rank, us_army_ranks.id 
FROM members 
LEFT JOIN us_army_ranks ON members.rank=us_army_ranks.rank 
WHERE members.id='$id' 

,因爲您的查詢,因爲它是爲errorneous,該mysql_query功能沒有返回的資源,但一個布爾FALSE來通知您查詢是錯誤的,未能執行。

+0

我看到有關反引號的問題,謝謝。 但是這種方式仍然返回一個「警告:mysql_fetch_array()期望參數1是資源,布爾在第18行給出的/home/ascmilsi/public_html/ranks.php」 – 2013-03-16 19:52:28

+0

啊哈!我的錯。你在這兩個表中都有一個「id」字段。上面的帖子現在相應更新。 – Martina 2013-03-16 19:55:17

+0

謝謝。工作。 – 2013-03-16 20:16:57

1

嘗試沒有單引號:

SELECT members.rank, us_army_rank.id 
FROM members 
LEFT JOIN us_army_ranks 
ON members.rank = us_army_ranks.rank 
WHERE id = $id 
+0

當在phpmysql中查詢時,返回「Column'id'in where clause is ambiguous」。我只是爲了測試而將$ id更改爲1。 – 2013-03-16 19:50:20

+0

嘗試在單引號中包裝$ id – doitlikejustin 2013-03-16 19:53:29