这是我的数组
Array
(
[0] => 31
[1] => 36
[2] => 41
)
31,36和41是记录的id。此数组中的元素可以是1个元素到10个元素的任何位置。表结构看起来像这样(缩短版本)
tbl_cart
---------
id (auto-incremented)
product_name
price
我想弄清楚的是,如何在一个动态创建的数组中获取id的监听然后累积每个受尊重id的价格并显示输出?
谢谢,让我知道这是否有意义。
答案 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)