2012-04-27 156 views
1

我從來沒有使用過JOIN,或者之前使用過多個表。SQL簡單連接問題

此錯誤彈出。

警告:mysql_fetch_assoc():提供的參數不是[通往此mysql_query行]的有效MySQL結果資源。

我在這做錯了什麼?

謝謝。

$group_id= 4; 

$result = mysql_query("SELECT table1.user_facebook_id AS user_facebook_id 
         FROM table1 JOIN table2 
         ON table1.user_id = table2.user_id 
         WHERE table2.group_id = $group_id"); 

$row = mysql_fetch_assoc($result); 
+0

這實際上是你的代碼,還是你假設$ group_id是4?該錯誤表明,應插入組ID的位置sql沒有找到任何東西。也許試試'WHERE table2.group_id =「。$ group_id);' – 2012-04-27 21:31:44

+0

如果你可以發佈表的結構以及... – therealmitchconnors 2012-04-27 21:31:56

+3

這意味着查詢失敗。添加if($ result)die(mysql_error())',並查看它打印的錯誤。 – 2012-04-27 21:37:17

回答

3

您應該測試$result的值以查看查詢是否失敗。如果是的話,打印錯誤調試目的:

$sql = "SELECT ..."; 
$result = mysql_query($sql); 
if (!$result) { 
    trigger_error(mysql_error()); 
} 

你可能也想嘗試運行在MySQL工作臺的SQL查詢,看它是否在那裏工作。

+0

嘗試這個錯誤後彈出。我越來越近! 注意:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第4行中的''附近使用正確的語法... [行'觸發器錯誤'處於打開狀態]。 – 2012-04-27 22:22:31

+0

@RickRyan:如果你在MySQL Workbench中運行相同的查詢,你會得到什麼?如果你打印SQL,你會得到什麼?例如,在我上面的例子中,'echo $ sql;'。 – 2012-04-27 22:27:51

+0

我使用phpMyAdmin。但是,我通過查詢來運行查詢,響應顯示「您必須至少選擇一列才能顯示」。爲了給你更多的輸入,我有table1中的user_facebook_id列。表1和表2中的user_id列和表2中的列group_id。我真的很感謝你幫助我。 – 2012-04-27 22:44:38