2012-04-27 6 views
1

私は決してJOINを使用したことがなく、以前は複数のテーブルで作業していました。SQL Simple JOINの問題

このエラーはポップアップしています。

警告: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);' –

+0

テーブルの構造を投稿することができれば助かります... – therealmitchconnors

+3

これはクエリが失敗したことを意味します。 'if($ result)die(mysql_error())'を追加し、それが出力するエラーを確認してください。 –

答えて

3

$resultの値をテストして、クエリが失敗したかどうかを確認する必要があります。その場合は、デバッグ目的のためにエラーを印刷:

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

あなたはまた、それが動作するかどうかを確認するためにMySQLのワークベンチでSQLクエリを実行してみたいことがあります。

+0

このエラーがポップアップするのを試みた後。私は近づいています! 注意:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルを調べて、正しい構文が "〜の行4"の近くで使用するようにしてください。[行の 'トリガエラー'がオンです]。 –

+0

@RickRyan:MySQL Workbenchで同じクエリを実行するとどうなりますか? SQLを印刷するとどうなりますか?たとえば、上記の例では 'echo $ sql;'とします。 –

+0

私はphpMyAdminを使用します。しかし、私はそれを介してクエリを実行し、応答には「表示する列を少なくとも1つ選択する必要があります」と表示されます。いくつかの入力を増やすために、table1にuser_facebook_idという列があります。表1と2の両方の列user_id。表2のgroup_id列。本当にありがとうございます。 –