2011-03-11 33 views
1

这里是我的数组如何使用动态数组中的值来执行sql查询?

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

的31,36和41号的记录的。此数组中的元素可以从1个元素到10个元素的任何位置。表结构看起来像这样(缩短版)

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

什么,我试图找出是我如何做一个查询,将抢在动态创建阵列听的ID,然后在积累的价格每个尊敬的id和显示输出?

谢谢,让我知道如果这没有意义。

回答

1

你想总结清单中的ID的价格吧?

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

你可以得到的ID作为使用implode()功能的逗号分隔的字符串,像这样:

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

然后,你可以注入到这一个SQL查询,使用in()

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

谢谢!你救了我这个! – 2013-10-13 13:07:42

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)