Codeigniter中数据表的where子句不起作用

时间:2018-11-05 14:33:03

标签: php codeigniter datatables

我正在尝试制作简单的数据表,没有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();
    }
}

1 个答案:

答案 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();