我在__getwheredata
中做了一个名为MY_Controller
的函数:
public function __getwheredata($tablename,$tablefield=array(),$where=array(),$orderbyfield = 'id',$ascdesc = 'desc',$limit = 200,$offset='')
{
if(is_array($tablefield)){$tablefield = implode(',',$tablefield);}
print_r($where);exit;
$data = $this->db
->select($tablefield)
->from($tablename)
->where($where)
->order_by($orderbyfield, $ascdesc)
->limit($limit,$offset)
->get();
return $data->result();
}
我需要在 field is not equal to 1
处获取数据。
所以我将函数调用为:
$this->Usermodel->__getwheredata('users','*',array('rights!='=>1),'id','desc',NULL);
但这里array('rights!='=>1)
将作为数组传递where
条件的值。
那我该如何解决这个问题?
答案 0 :(得分:1)
也许您需要像这样对整个数组进行字符串化处理:
$temp = '';
$index = 1;
$count = count($where);
foreach($where as $key => $value)
{
$temp .= $key.$value;
if($index < $count) $temp .= ',';
$index++;
}
$where = $temp;
现在它将以类似rights!=1
的字符串形式生成where语句
编辑:,也可以这样:
foreach($where as $key => $value)
{
$this->db->where($key, $value);
}
现在您的函数将如下所示:
foreach($where as $key => $value)
{
$this->db->where($key, $value);
}
$data = $this->db->select($tablefield)
->from($tablename)
->order_by($orderbyfield, $ascdesc)
->limit($limit,$offset)
->get();