我正在尝试制作简单的数据表,没有where线索是完全可以的,但是我需要使用where线索来工作“ $ this-> db-> where('user.user_id',$ this-> session- > userdata('user_id'));“。请帮助我找出问题所在。
class Dashboard_model extends CI_Model{
var $table = "todo";
var $select_column = array("todo_id", "todo.user_id", "login", "content");
var $order_column = array(null, "login", "content");
public function make_query(){
$this->db->select($this->select_column);
$this->db->join('user', $this->table.'.user_id = user.user_id');
$this->db->where('user.user_id', $this->session->userdata('user_id'));
$this->db->from($this->table);
if (isset($_POST["search"]["value"])){
$this->db->like("login", $_POST["search"]["value"]);
$this->db->or_like("content", $_POST["search"]["value"]);
}
if (isset($_POST["order"])){
$this->db->order_by($this->order_column[ $_POST['order']['0']['column'] ], $_POST['order']['0']['dir']);
}else{
$this->db->order_by("todo_id", "DESC");
}
}
public function make_datatables(){
$this->make_query();
if ($_POST["length"] != -1){
$this->db->limit($_POST["length"], $_POST["start"]);
}
$query = $this->db->get();
return $query->result();
}
public function get_filtered_data(){
$this->make_query();
$query = $this->db->get();
return $query->num_rows();
}
public function get_all_data(){
$this->db->select("*");
$this->db->from($this->table);
return $this->db->count_all_results();
}
}
答案 0 :(得分:1)
您的where子句不起作用,因为您使用了
之类的OR$this->db->or_like(`"content", $_POST["search"]["value"]`);
这将使查询条件成为OR条件。
在类似查询之前和之后使用组开始和组结束。
示例
if (isset($_POST["search"]["value"])){
$this->db->group_start();
$this->db->like("login", $_POST["search"]["value"]);
$this->db->or_like("content", $_POST["search"]["value"]);
$this->db->group_end();
}
编辑
还可以通过以下方式检查原始查询
:$this->db->last_query();