2014-09-24 4 views
0

으로 mysql에 문의하십시오. 내 마음에 온 모든 것을 시도했지만 아무 것도 작동하지 않습니다.다차원 배열

내가 만들 수있는 다음 코드와이

$sku _list = Array(
[0] => Array 
    (
     [sku] => 885370773958 
    ) 

[1] => Array 
    (
     [sku] => 711719805205 
    )) 

같은 배열

$db = new mysqli("localhost", "user", "pass", "db"); 
$consult_sku = $db->query("SELECT * FROM fullfilment WHERE sku IN (" . implode(",", array_map(function ($sku_entry) { return $sku_entry['sku'];},$sku_list)) . ")"); 

만 $ sku_list

Array 
(
    [0] => 885370773958 
    [sku] => 885370773958 
    [1] => CAMO 
    [name] => CAMO 
    [2] => 1 
    [quantity] => 1 
) 
의 첫 번째 값으로, 다음 배열을 받고 상담이

$ sku_list와 비슷한 배열을 복구하려면 결과를 얻는 것이 가장 좋습니다.

인사말!

답변

1

PHP 코드 사용에 부끄러운 점이 없으며 매우 빠르게 실행됩니다. 그래서 대신에이 괴물을 가하고의 쿼리 :

array_map(function ($sku_entry) { return $sku_entry['sku'];},$sku_list) 

당신이 당신의 쿼리 앞에이 같은 PHP 코드를 이해하기 위해 간단한 작성할 수

$sql = 'SELECT sku FROM fullfilment WHERE sku IN ('.implode(',',$sku).')'; 
$result_sku = $db->query($sql); 
:

foreach ($sku_list as $item) $sku[] = $item['sku']; 

그런 다음 쿼리를 수행

여러 줄을 두려워하지 않아도되므로 코드를 읽고 이해하기가 더 쉽습니다. 이 후에는 결과에서 정보를 추출 할 수 있습니다 :

while($row = $result_sku->fetch_assoc()) { 
    $sku_found[] = $row; 
} 

지금 $sku_found$sku_list에 구조화 된 similary 될 것입니다.

SQL 명령에 *이 포함되어있어 모든 열을 검색한다는 점에 유의하십시오. 내 예에서는 sku 열만 사용했습니다.

+0

고마워요! 그것은 정말로 당신의 설명과 충고에 도움이되었습니다. 나는 여전히 PHP에 초보자. –