2013-12-11 2 views
0

이것은 내 첫 번째 게시물이기 때문에 나랑 벗겨주세요. 이 질문에 어리석게도 간단한 해결책이 있거나 사전에 자신을 명확하게 설명하지 않으면 사전에 사과드립니다. - 또한, 대부분은 독학으로, 제 일이 부주의하다면 정말 미안합니다.데이터베이스 결과를 반복하는 방법, 각 값을 배열의 값과 비교하고 일치하는 ID를 반환 하시겠습니까?

배열을 제공 할 함수를 작성하려고합니다. 이 배열에서 일치하는 것을 찾으려고 데이터베이스의 전체 테이블을 반복합니다. 일치하는 것을 찾으면. 데이터베이스 테이블에서 일치하는 ID를 반향 출력하고 싶습니다.

가능한 경우 가까운 일치하는 항목을 찾았습니까? 나를 위해이 까다로운을 무슨


예를 들어

... 그것은 순서에도 불구하고 모든 값을 일치해야한다는 것입니다,이 함수는이 배열 주어진다면 :

      $array = array(1,2,3,4,5)

이 배열을 데이터베이스에서 찾습니다.

발견 한 경우210  는   $array = array(2,3,5,1,4)

그것은,

또한이 경기 고려해야한다; 이것은 출력해야   array(1,2,3,4,5,6)



   이 값이 6 제외한 매치로서

나는 충분히 명확 해 졌으면 좋겠다. 사전에 도움을 주셔서 감사 드리며 모든 도움을 주시면 감사하겠습니다.

미리 감사드립니다. 그렉.

+1

당신이 좋아하는 것과 같은 소리가 나네요.'bar에서 어디로 가야할 것인가? (어디서나 여기에 배열) ' –

+1

아마 s 당신이 원하는 것을 데이터베이스 테이블이 어떻게 더 잘 설명하는지 – Steve

답변

0

당신은 결과가 바로 코드를 실행 얻을 배열의 차이를 사용할 수 있으며 케이스 이해 사례 2

$array1 = array(1,2,3,4,5); 
$array2 = array(1,2,3,4,5,6); 
$result = array_diff($array2, $array1); 

print_r($result); 

그리고 그 후 1

$array1 = array(1,2,3,4,5); 
$array2 = array(1,2,3,4,5,6); 
$result = array_diff($array1, $array2); 

print_r($result); 

할 수 있습니다 $ 결과의 수 당신의 논리에 넣으십시오.

0

사례 1 :

은 어쩌면 당신은 데이터베이스에서 고유 한 값을 선택할 수 있습니다.

SELECT DISTINCT unique_values_that_need_for_compare_column FROM table 

이 SQL 결과는 $ databaseValues ​​ 변수 값이됩니다.

함수가 가져 오는 배열을 반복합니다.

foreach ($functionArray as $value) { 
    if (in_array($value, $databaseValues)) { 
     // you have a match 
     echo $value; 
    } 
} 

사례 2 :

또는 당신은 모든 가치에 대해 질의 할 수 있습니다 :

foreach ($functionArray as $value) { 
    $query = "SELECT COUNT(*) as match FROM table WHERE unique_values_that_need_for_compare_column = " . intval($value); 
    // fetch the result into the $queryResult variable and than check 
     if ($queryResult['match']) { 
      // you have a match 
      echo $value; 
     } 
    } 
1

나에게 질문을 refrase하자,이 올바른지를?

ID의 배열을 기반으로 ID가 배열에있는 모든 레코드를 반환합니다. 우리는 쉼표로 구분 된 목록에 지정된 배열을 변환 할 필요가 그래서 일단

SELECT * 
FROM tableName 
WHERE columnName IN (value1, value2, value3, etc.) 

:

그렇다면, IN operator를 사용

$comma_seperated = implode(', ', $array); 

지금 우리가 쉼표로 구분 우리의 질의에 사용할 수있는 목록 :

$comma_seperated = implode(', ', $array); 

$query = "SELECT * 
FROM tableName 
WHERE id IN (" . $comma_seperated . ")"; 

// execute query, don't use mysql_* functions, etc. ;) 
1

옵션 1 : 2

$array = array(1,2,3,4,5); 
$query = "SELECT id FROM youtable WHERE id IN(".implode(",",$array).")"; 

옵션 :3210 당신은 어떤 옵션도 사용할 수 있습니다, 결과는 $ query_results에 저장된다라고

$array = array(1,2,3,4,5); 
$query = "SELECT id FROM yourtable";//Select ids 

지금 쿼리 결과를 반복을

$result=array(); 
foreach($query_results as $row){ 
    if(in_array($row['id'],$array)){ 
      $result[] = $row['id']; 
    } 

} 
관련 문제