我的查询中有一组id,我使用implode函数或此代码将其传递给模型,我想在where子句中使用where。
$idKurseva = '';
foreach( $idKursa as $value ) { $idKurseva .= $value['KursID'].','; }
$idKurseva = rtrim($idKurseva, ",");
$kkk = $this->statistika_model->soldProductsPrice($autoriIDString);
这是我在codeIgniter框架中的模型和函数
public function soldProductsPrice($idkurseva)
{
$this->db->select('sum(ProductsPrice) * 20/100 AS Zarada, count(IdProduct) AS brojProdaja, IdProduct');
$this->db->where_in('IdProduct', $idkurseva);
$this->db->group_by('IdProduct');
$this->db->get($this->db->dbprefix(TBL_ORDERS_PRODUCTS))->result();
return $this->db->last_query();
}
我得到了这种结构的查询。
SELECT sum(ProductsPrice) * 20/100 AS Zarada, count(IdProduct) AS brojProdaja, `IdProduct` FROM (`cms_cart_orders_products`) WHERE `IdProduct` IN ('10,13') GROUP BY `IdProduct`
我认为问题在于此
IN ('10,13')
是否可以传递类似的内容
IN (10,13)
我得到空结果
答案 0 :(得分:2)
foreach( $idKursa as $value ) { $idKurseva .= $value['KursID'].','; }
$idKurseva = rtrim($idKurseva, ",");
使用implode:
$idKurseva = implode(',', $idKursa);
但是像Mihai之前说的那样,将数组传递给方法:where_in