2011-03-06 6 views
2
//get all id's of ur friend that has installed your application 
$friend_pics=$facebook->api(array('method' => 'fql.query', 'query' => "SELECT uid FROM user WHERE uid IN(SELECT uid2 from friend WHERE uid1='$user') AND is_app_user = 1")); // this query work fine 
//your top10 friends in app 
$result="SELECT * FROM fb_user WHERE user_id IN($friend_pics) ORDER BY oldscore DESC LIMIT 0,10"; 
db_execute($result); 

내가 배열 이름 $ friend_pics oldscore에하지만 내 두 번째 쿼리에 저장 내 데이터베이스에서 나는 추측 작동하지 않는 열 득점 왕을 가져 오지하려면, PLZ 나에게 감사mysql 질의의 'IN'절에서 PHP의 값 배열을 사용하는 방법은 무엇입니까?

+0

당신은 당신의 코드를 더 작성해야하고/또는 DB 스키마 것이다 . 여기에 많은 문제가있을 수 있습니다. 이것은 충분한 정보가 아닙니다. – bonez

+0

자리 표시 자 사용 가능 액세스 메소드 (mysqli 또는 pdo) 중 하나가 이와 같은 구조를 지원하기를 바랍니다 (일반적으로 어쨌든 사용해야합니다). –

답변

1

왜 당신이 그 배열을 변환하지 않습니다 도움 array가 거대한 크기가 아닌 한 긴 목록의 문자열로 변환합니다.

$ids = array(2, 4, 6, 8); 
$params = implode(",", array_fill(0, count($ids), "?")); 

    $result="SELECT * FROM fb_user WHERE user_id IN($params) ORDER BY oldscore DESC LIMIT 0,10"; 
db_execute($result); 
+0

내가해야 할 일은 무엇일까요? –

+0

$ friendsAp = implode (",", $ friendpics); 나는 이미 이것을했지만 일하지 않았다. –

+0

어떤 오류가 발생 했습니까? – yogsma

1

$friend_pics 쉼표로 구분 즉, "1, 2, 3, 4"를 포함하는 문자열이어야한다. 그렇지 않으면 두 번째 쿼리가 항상 실패합니다.

+0

이 작업은 완벽하게 –

+0

이 작업은 완벽하게 $ friend_pics = $ facebook-> api (array ('method'=> 'fql.query', 'query'=> "SELECT uid FROM 사용자 위치 uid IN WHERE uid1 $ status_a [ 'uid']. '\' '); $ status_a ['uid ']'; } $ status = implode (',', $ status_sql); $ result = "SELECT * FROM fb_user WHERE user_id IN ($ status) ORDER BY oldscore DESC LIMIT 0,10"; db_execute ($ result); 이 빌어 먹을 의식 thaks 4 UR 도움말입니다 –

3

네이티브 지원은 없습니다. 바운드 매개 변수 API조차 IN 절에 배열을 사용할 수 없습니다. 간단한 대안은 그러나 mysqls에게 FIND_IN_SET()을 것

$friend_pics = array_map("mysql_real_escape_string", $friend_pics); 
$friend_pics = "'" . implode("', '", $friend_pics) . "'"; 
"SELECT * WHERE user_id IN ($friend_pics)    " 

: 당신은 몇 가지 헬퍼 코드로 쿼리를 구성해야

$friend_pics = mysql_real_escape_string(implode(",", $friend_pics)); 
"SELECT * FROM fb_user WHERE find_in_set(user_id,'$friend_pics')  " 
관련 문제