Question

Je suis en train de chercher les amis de l'utilisateur (qui est connecté à son compte FaceBook) basée sur le sexe de ses amis et basés sur le pic_big!=NULL (Chaque ami doit avoir une grande photo de profil).

Voici mon code que je vous écris.

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 est l'ID de connexion de l'utilisateur. Je ne reçois aucune réponse dans les méthodes de délégués. Je suis sûr que le besoin I revérifier cette requête SQL. Toutes les suggestions Veuillez.

Était-ce utile?

La solution

Vous avez quelques erreurs dans votre code FQL et en ajoutant une suggestion que je ferais pour simplifier, voici ce que vous devez interroger la place:

SELECT nom, pic_big, le sexe, uid FROM user OU uid dans (SELECT UID2 d'un ami OÙ UID1 me = ()) et le sexe = "mâle"

choses à noter:

  1. UID1 est le champ d'index correct pour la table d'amis, pas uid
  2. Vous étiez absent le signe égal après « d'un ami OU uid »
  3. moi () est une fonction d'assistance dans FQL qui représente l'utilisateur en cours de session (ie. L'utilisateur de l'application)
  4. pic_big ne sera jamais nulle, car même l'image par défaut de profil pour les utilisateurs sur Facebook renvoie une valeur pour cela, teste donc pour il est redondant.
  5. Je l'ai changé l'ordre de la clause WHERE, mais cela ne devrait pas question.

Autres conseils

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];  

Use this queryString. I am not sure but think this will help you.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top