2011-03-11 6 views
1

여기 내 배열동적 배열의 값을 사용하여 SQL 쿼리를 수행하는 방법은 무엇입니까?

31, 36
Array 
(
    [0] => 31 
    [1] => 36 
    [2] => 41 
) 

이며, 41은 기록의 ID입니다. 이 배열의 요소는 1 개 요소에서 10 개 이상의 요소까지있을 수 있습니다. 테이블 구조는 (단축 버전) 같은

tbl_cart 
--------- 
id (auto-incremented) 
product_name 
price 

은 내가 알아 내려고 노력하고있어 난 후 가격을 축적의이 동적으로 생성 된 배열에서 듣고 ID를 사로 잡고 쿼리를 할 수있는 방법이다 보인다 각각의 존경받는 이드와 출력을 표시 하시겠습니까?

감사합니다.이 말이 나에게 도움이되는지 알려주세요.

답변

1

귀하의 목록에있는 ID의 가격을 합산 하시겠습니까?

$idStr = implode(',', $arr); 
$sql = "SELECT sum(price) FROM tbl_cart WHERE id in ($idStr)"; 
2

이처럼 implode() 함수를 사용하여 쉼표로 구분 된 문자열로 ID를 얻을 수 있습니다 :

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

그런 다음 SQL 쿼리로 그를 주입 할 수 in() 사용 :

select sum(price) as total_price 
from tbl_cart 
where id in ($str_ids) 
+0

감사합니다! 너 나를이 사람으로 구해줬구나! –

0
$vars = array(1, 2, 3, 4); 

$newvars = array(); 

foreach($vars as $var){ 

    if(!empty($var)) 
     $newvars[] = " ID = ".$var; 

} 

$where = join(" OR ", $newvars); 

$sql = "SELECT * FROM table ".(($where)?"WHERE ".$where: null); 

echo $sql; 
0
$ids = implode(',', $array); 
$query = "SELECT id, price FROM tbl_cart WHERE id in ($ids)"; 

$result = mysql_query($query); 

while ($row = mysql_fetch_array($result)) { 
    echo "ID: {$row['id']} Price: {$row['price']}"); 
} 

출력

// ID: 31 Price: (the price) 
// ID: 36 Price: (the price) 
// ID: 41 Price: (the price) 
관련 문제