数据库操作 如何写where 中的 where_in
本帖最后由 Moved_Permanent 于 2014-3-25 09:05 编辑/* 获取明细列表 */
public function getMoneyList($whereArr, $offset=0, $perpage=10, $order='', $orderVal='') {
$result = ARRAY();
$this->CI->db->select('id,money,add_time,user_id,user_account,category_id,note,score_id,update_time');
if (!empty($order) && !empty($orderVal) ) $this->CI->db->order_by($order, $orderVal);
if (!empty($whereArr)) $this->CI->db->where($whereArr);
if (!empty($perpage)) $this->CI->db->limit($perpage, $offset);
$query = $this->CI->db->get('om_detail');
if ($query->num_rows() == 0) return $result;
foreach ($query->result_array() as $row)
$result[$row['id']] = $row;
return $result;
}
这是一个获取明细列表的方法,只要传递条件数组、偏移量、分页、及排序和值就可以将所需要的明细返回过来。
现在有一个问题是,我想获取多个category_id;我不知道怎么取了。
我查询了CI手册里面的,可以使用where_in,但是,不知道怎么与这个方法相结合。
期望大家指点下。
另外,手册上是,可以使用
自定义 key/value 方法:你可以在第一个参数中包含一个运算符,以便控制比较:
$this->db->where('name !=', $name);
$this->db->where('id <', $id);
// 生成: WHERE name != 'Joe' AND id < 45
上面介绍了,大于、小于之类的“隐含式操作符”,能不能使用IN呢?怎么写?
感谢!!!
$whereArr = array('category_id'=>array(ID)……)以数组形式写入whereArr
函数中判读ID个数
为1的话就直接上文中操作
>1 先where_in('category_id',$whereArr) 然后unset掉$whereArr['category_id'],再where($whereArr) {:soso_e179:}
一个不错的解决方法,感谢!
foreach ($whereArr as $key => $val) {
if (is_array($val)) {
$this->CI->db->where_in($key, $val);
unset($whereArr[$key]);
}
}
页:
[1]