1

pic_big!=NULL私は、彼の友人の性別と(すべての友人は大きなプロフィール写真を持っている必要があります)に基づいて、ユーザーの友人(彼のFaceBookアカウントにログインしている)を取得しようとしています。

以下は私が書いている私のコードです。

NSString *queryString =  [NSString stringWithFormat:@"%@%@%@%@%@%@%i%@%@",
                          @"SELECT name, pic_big, sex, uid FROM user ", 
                          @"WHERE sex=", @"male", @" AND ",
                          @"pic_big != 'null' AND uid IN (SELECT uid2 ",
                          @"FROM friend WHERE uid  ", loggedInID, @" )",
                          @"ORDER BY name"];  
NSMutableDictionary *dictionary=[NSMutableDictionary 
    dictionaryWithObjectsAndKeys:queryString,@"query", nil];

[FBRequest getRequestWithParams:dictionary
                     httpMethod:@"GET" 
                       delegate:self
                     requestURL:@"fql.query"]; 

loggedINiDユーザーのログインIDです。デリゲートメソッドで応答がありません。このSQLクエリを再確認する必要があると確信しています。何か提案をお願いします。

4

2 に答える 2

2

FQL コードにいくつかのエラーがあり、簡単にするために 1 つの提案を追加します。代わりにクエリを実行する必要があるのは次のとおりです。

SELECT name, pic_big, sex, uid FROM user WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) AND sex = "male"

注意事項:

  1. uid1 はフレンド テーブルの正しいインデックス フィールドであり、uid ではありません
  2. 「FROM friend WHERE uid」の後に等号がありませんでした
  3. me() は、現在のセッション ユーザー (つまり、アプリ ユーザー) を表す FQL のヘルパー関数です。
  4. pic_big が null になることはありません。Facebook のユーザーのデフォルトのプロフィール写真でさえ、この値を返すため、テストは冗長です。
  5. WHERE 句の順序を変更しましたが、問題ありません。
于 2011-09-05T11:41:55.880 に答える
0
NSString *queryString =  [NSString stringWithFormat:@"SELECT name, pic_big, sex, uid FROM user WHERE sex='male' AND pic_big != 'null' AND uid IN (SELECT uid2 FROM friend WHERE uid = %i) ORDER BY name", loggedInID];  

このクエリ文字列を使用します。よくわかりませんが、これが役立つと思います。

于 2011-09-05T11:41:14.693 に答える