2013-05-26 2 views
1

ID가 많은 (100-800) 배열이 있습니다. 데이터베이스에서 일치하는 항목이있는 배열에서 내 배열의 ID를 조회하여 데이터베이스를 쿼리 한 다음 일치하는 결과를 새 배열에 저장하고 싶습니다.배열을 기반으로 MySql 'id'조회를 수행하고 새 배열에 결과를 저장하는 방법

내 배열 :

//print_r($_POST["fb_friend_uid"]) 
Array 
(
    [0] => Array 
     (
      [id] => 263901486 
     ) 

    [1] => Array 
     (
      [id] => 502533736 
     ) 
) 

--1. 그런 다음 배열의 값이 데이터베이스의 레코드와 일치하는지 확인하려고합니다. 이 올바른 방법입니까? :

$ids = join(',',$_POST["fb_friend_uid"]); 

SELECT * 
FROM vote WHERE 
vote_fb_uid IN ($ids) 
AND DATE(FROM_UNIXTIME(vote_time)) = DATE(NOW())"; 

--2. json_encode($savedResultsInNewArray);

임 조금 에코 :

while($row=mysqli_fetch_assoc($result)){ 
    $savedResultsInNewArray=[$row['vote_fb_uid']]; 
} 

싸이의 형식으로 새로운 배열을 반환 찾고 : - 그런 다음 새로운 배열에 일치하는 레코드를 저장하기 위해 애 쓰고 메신저이 필자로 뭘하려 위가 올바른 방법인지 확신 할 수 없습니까?

+0

실패, 어떻게 된 일, 여기에 여러 단계가 있어요? –

답변

0

첫 번째 부분은 ID를 배열에서 가져 오는 것입니다. 당신은 루프와 함께이 작업을 수행 할 수 있습니다

<?php 

foreach ($_POST["fb_friend_uid"] as $uid) { 
    $uids[] = $uid['id']; 
} 

$ids = join(',', $uids); 

/* 
* Query is correct 
* 
* SELECT * 
* FROM vote WHERE 
* vote_fb_uid IN ($ids) 
* AND DATE(FROM_UNIXTIME(vote_time)) = DATE(NOW())"; 
*/ 

// For the returning part. 

while($row=mysqli_fetch_assoc($result)){ 
    $savedResultsInNewArray[] = $row['vote_fb_uid']; 
} 
+0

안녕하세요, Farkie - 답변 해 주셔서 감사합니다. 나는 거의 작동한다고 생각한다. 내 쿼리를 하드 코드 된 ID 번호로 조정하려고했는데 Phpmyadmin에서 실행하여 2 개의 결과를 얻었습니다. 그러나 내가 print_r ($ savedResultsInNewArray); 그런 다음 결과가 1 회로 만 나타납니다. 모든 결과 데이터가 새 배열에 저장됩니다. – user1231561

+0

하단 부분을 약간 수정하고 [] – Farkie

+0

Sry를 추가하면 업데이트가 표시되지 않습니까? :) - atleast $ savedResultsInNewArray [] = $ row [ 'vote_fb_uid']; 거기에서 시작되었습니다 :) 지금은 무엇을하고 있습니까 – user1231561

관련 문제