如何使用动态数组中的值进行SQL查询?

时间:2011-03-11 05:55:09

标签: php mysql arrays

这是我的数组

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

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

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

我想弄清楚的是,如何在一个动态创建的数组中获取id的监听然后累积每个受尊重id的价格并显示输出?

谢谢,让我知道这是否有意义。

4 个答案:

答案 0 :(得分:2)

您可以使用implode()函数将ID作为逗号分隔的字符串获取,如下所示:

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

然后,您可以使用 in() 将其注入SQL查询:

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

答案 1 :(得分:1)

你想要列出你名单中的ID的价格吗?

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

答案 2 :(得分: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;

答案 3 :(得分: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)